mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Support repo license (#24872)
Close #278 Close #24076 ## Solutions: - Use [google/licenseclassifier](https://github.com/google/licenseclassifier/) Test result between [google/licensecheck](https://github.com/google/licensecheck) and [go-license-detector](https://github.com/go-enry/go-license-detector): https://github.com/go-gitea/gitea/pull/24872#issuecomment-1560361167 Test result between [google/licensecheck](https://github.com/google/licensecheck) and [google/licenseclassifier](https://github.com/google/licenseclassifier/): https://github.com/go-gitea/gitea/pull/24872#issuecomment-1576092178 - Generate License Convert Name List to avoid import license templates with same contents Gitea automatically get latest license data from[ spdx/license-list-data](https://github.com/spdx/license-list-data). But unfortunately, some license templates have same contents. #20915 [click here to see the list](https://github.com/go-gitea/gitea/pull/24872#issuecomment-1584141684) So we will generate a list of these license templates with same contents and create a new file to save the result when using `make generate-license`. (Need to decide the save path) - Save License info into a new table `repo_license` Can easily support searching repo by license in the future. ## Screen shot Single License:  Multiple Licenses:  Triggers: - [x] Push commit to default branch - [x] Create repo - [x] Mirror repo - [x] When Default Branch is changed, licenses should be updated Todo: - [x] Save Licenses info in to DB when there's a change to license file in the commit - [x] DB Migration - [x] A nominal test? - [x] Select which library to use(https://github.com/go-gitea/gitea/pull/24872#issuecomment-1560361167) - [x] API Support - [x] Add repo license table - ~Select license in settings if there are several licenses(Not recommended)~ - License board(later, not in this PR)  --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Denys Konovalov <kontakt@denyskon.de> Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: 6543 <m.huber@kithara.com> Co-authored-by: a1012112796 <1012112796@qq.com> Co-authored-by: techknowlogick <techknowlogick@gitea.com>
This commit is contained in:
		| @@ -29,7 +29,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/util" | ||||
| 	"code.gitea.io/gitea/services/context" | ||||
| 	"code.gitea.io/gitea/services/gitdiff" | ||||
| 	git_service "code.gitea.io/gitea/services/repository" | ||||
| 	repo_service "code.gitea.io/gitea/services/repository" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -101,7 +101,7 @@ func Commits(ctx *context.Context) { | ||||
| 	pager := context.NewPagination(int(commitsCount), pageSize, page, 5) | ||||
| 	pager.SetDefaultParams(ctx) | ||||
| 	ctx.Data["Page"] = pager | ||||
|  | ||||
| 	ctx.Data["LicenseFileName"] = repo_service.LicenseFileName | ||||
| 	ctx.HTML(http.StatusOK, tplCommits) | ||||
| } | ||||
|  | ||||
| @@ -218,6 +218,8 @@ func SearchCommits(ctx *context.Context) { | ||||
| 	} | ||||
| 	ctx.Data["Username"] = ctx.Repo.Owner.Name | ||||
| 	ctx.Data["Reponame"] = ctx.Repo.Repository.Name | ||||
| 	ctx.Data["RefName"] = ctx.Repo.RefName | ||||
| 	ctx.Data["LicenseFileName"] = repo_service.LicenseFileName | ||||
| 	ctx.HTML(http.StatusOK, tplCommits) | ||||
| } | ||||
|  | ||||
| @@ -263,12 +265,12 @@ func FileHistory(ctx *context.Context) { | ||||
| 	pager := context.NewPagination(int(commitsCount), setting.Git.CommitsRangeSize, page, 5) | ||||
| 	pager.SetDefaultParams(ctx) | ||||
| 	ctx.Data["Page"] = pager | ||||
|  | ||||
| 	ctx.Data["LicenseFileName"] = repo_service.LicenseFileName | ||||
| 	ctx.HTML(http.StatusOK, tplCommits) | ||||
| } | ||||
|  | ||||
| func LoadBranchesAndTags(ctx *context.Context) { | ||||
| 	response, err := git_service.LoadBranchesAndTags(ctx, ctx.Repo, ctx.PathParam("sha")) | ||||
| 	response, err := repo_service.LoadBranchesAndTags(ctx, ctx.Repo, ctx.PathParam("sha")) | ||||
| 	if err == nil { | ||||
| 		ctx.JSON(http.StatusOK, response) | ||||
| 		return | ||||
|   | ||||
		Reference in New Issue
	
	Block a user