Skip to content

Commit d4655b0

Browse files
committed
fix
1 parent 403775e commit d4655b0

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

services/repository/push.go

+20-16
Original file line numberDiff line numberDiff line change
@@ -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 points 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

Comments
 (0)