@@ -23,6 +23,7 @@ import (
2323 repo_module "code.gitea.io/gitea/modules/repository"
2424 "code.gitea.io/gitea/modules/setting"
2525 "code.gitea.io/gitea/modules/timeutil"
26+ "code.gitea.io/gitea/modules/util"
2627 issue_service "code.gitea.io/gitea/services/issue"
2728 notify_service "code.gitea.io/gitea/services/notify"
2829 pull_service "code.gitea.io/gitea/services/pull"
@@ -133,23 +134,26 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
133134 } else { // is new tag
134135 newCommit , err := gitRepo .GetCommit (opts .NewCommitID )
135136 if err != nil {
136- return fmt .Errorf ("gitRepo.GetCommit(%s) in %s/%s[%d]: %w" , opts .NewCommitID , repo .OwnerName , repo .Name , repo .ID , err )
137+ // in case there is dirty data, for example, the "github.com/git/git" repository has tags pointing to non-existing commits
138+ if ! errors .Is (err , util .ErrNotExist ) {
139+ log .Error ("Unable to get tag commit: gitRepo.GetCommit(%s) in %s/%s[%d]: %v" , opts .NewCommitID , repo .OwnerName , repo .Name , repo .ID , err )
140+ }
141+ } else {
142+ commits := repo_module .NewPushCommits ()
143+ commits .HeadCommit = repo_module .CommitToPushCommit (newCommit )
144+ commits .CompareURL = repo .ComposeCompareURL (objectFormat .EmptyObjectID ().String (), opts .NewCommitID )
145+
146+ notify_service .PushCommits (
147+ ctx , pusher , repo ,
148+ & repo_module.PushUpdateOptions {
149+ RefFullName : opts .RefFullName ,
150+ OldCommitID : objectFormat .EmptyObjectID ().String (),
151+ NewCommitID : opts .NewCommitID ,
152+ }, commits )
153+
154+ addTags = append (addTags , tagName )
155+ notify_service .CreateRef (ctx , pusher , repo , opts .RefFullName , opts .NewCommitID )
137156 }
138-
139- commits := repo_module .NewPushCommits ()
140- commits .HeadCommit = repo_module .CommitToPushCommit (newCommit )
141- commits .CompareURL = repo .ComposeCompareURL (objectFormat .EmptyObjectID ().String (), opts .NewCommitID )
142-
143- notify_service .PushCommits (
144- ctx , pusher , repo ,
145- & repo_module.PushUpdateOptions {
146- RefFullName : opts .RefFullName ,
147- OldCommitID : objectFormat .EmptyObjectID ().String (),
148- NewCommitID : opts .NewCommitID ,
149- }, commits )
150-
151- addTags = append (addTags , tagName )
152- notify_service .CreateRef (ctx , pusher , repo , opts .RefFullName , opts .NewCommitID )
153157 }
154158 } else if opts .RefFullName .IsBranch () {
155159 if pusher == nil || pusher .ID != opts .PusherID {
0 commit comments