mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	Add tag protection (#15629)
* Added tag protection in hook. * Prevent UI tag creation if protected. * Added settings page. * Added tests. * Added suggestions. * Moved tests. * Use individual errors. * Removed unneeded methods. * Switched delete selector. * Changed method names. * No reason to be unique. * Allow editing of protected tags. * Removed unique key from migration. * Added docs page. * Changed date. * Respond with 404 to not found tags. * Replaced glob with regex pattern. * Added support for glob and regex pattern. * Updated documentation. * Changed white* to allow*. * Fixed edit button link. * Added cancel button. Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		@@ -322,6 +322,18 @@ func NewReleasePost(ctx *context.Context) {
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if models.IsErrInvalidTagName(err) {
 | 
			
		||||
					ctx.Flash.Error(ctx.Tr("repo.release.tag_name_invalid"))
 | 
			
		||||
					ctx.Redirect(ctx.Repo.RepoLink + "/src/" + ctx.Repo.BranchNameSubURL())
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if models.IsErrProtectedTagName(err) {
 | 
			
		||||
					ctx.Flash.Error(ctx.Tr("repo.release.tag_name_protected"))
 | 
			
		||||
					ctx.Redirect(ctx.Repo.RepoLink + "/src/" + ctx.Repo.BranchNameSubURL())
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				ctx.ServerError("releaseservice.CreateNewTag", err)
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
@@ -333,7 +345,9 @@ func NewReleasePost(ctx *context.Context) {
 | 
			
		||||
 | 
			
		||||
		rel = &models.Release{
 | 
			
		||||
			RepoID:       ctx.Repo.Repository.ID,
 | 
			
		||||
			Repo:         ctx.Repo.Repository,
 | 
			
		||||
			PublisherID:  ctx.User.ID,
 | 
			
		||||
			Publisher:    ctx.User,
 | 
			
		||||
			Title:        form.Title,
 | 
			
		||||
			TagName:      form.TagName,
 | 
			
		||||
			Target:       form.Target,
 | 
			
		||||
@@ -350,6 +364,8 @@ func NewReleasePost(ctx *context.Context) {
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("repo.release.tag_name_already_exist"), tplReleaseNew, &form)
 | 
			
		||||
			case models.IsErrInvalidTagName(err):
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("repo.release.tag_name_invalid"), tplReleaseNew, &form)
 | 
			
		||||
			case models.IsErrProtectedTagName(err):
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("repo.release.tag_name_protected"), tplReleaseNew, &form)
 | 
			
		||||
			default:
 | 
			
		||||
				ctx.ServerError("CreateRelease", err)
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user