aboutsummaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authoryp05327 <576951401@qq.com>2024-03-19 16:23:40 +0900
committerGitHub <noreply@github.com>2024-03-19 07:23:40 +0000
commit98217b034076157547cf688cc10f47cd3275c872 (patch)
tree652cafdfc4426c853046f7b9d8f78a6640b2fe1f /services
parent17d7ab5ad4ce3d0fbc1251572c22687c237a30b1 (diff)
downloadgitea-98217b034076157547cf688cc10f47cd3275c872.tar.gz
gitea-98217b034076157547cf688cc10f47cd3275c872.zip
Fix invalid link of the commit status when ref is tag (#29752)
Fix #29731 Caused by #24634 Also remove fixme. ps: we can not fix the existed runs, as wrong refs are all recorded in DB, and we can not know whether they are branch or tag: ![image](https://github.com/go-gitea/gitea/assets/18380374/cb7cf266-f73f-419a-be1a-4689fdd1952a)
Diffstat (limited to 'services')
-rw-r--r--services/actions/notifier.go16
1 files changed, 13 insertions, 3 deletions
diff --git a/services/actions/notifier.go b/services/actions/notifier.go
index aa88d4e0d8..eec5f814da 100644
--- a/services/actions/notifier.go
+++ b/services/actions/notifier.go
@@ -515,6 +515,12 @@ func (*actionsNotifier) MergePullRequest(ctx context.Context, doer *user_model.U
}
func (n *actionsNotifier) PushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits) {
+ commitID, _ := git.NewIDFromString(opts.NewCommitID)
+ if commitID.IsZero() {
+ log.Trace("new commitID is empty")
+ return
+ }
+
ctx = withMethod(ctx, "PushCommits")
apiPusher := convert.ToUser(ctx, pusher, nil)
@@ -547,9 +553,9 @@ func (n *actionsNotifier) CreateRef(ctx context.Context, pusher *user_model.User
apiRepo := convert.ToRepo(ctx, repo, access_model.Permission{AccessMode: perm_model.AccessModeNone})
newNotifyInput(repo, pusher, webhook_module.HookEventCreate).
- WithRef(refFullName.ShortName()). // FIXME: should we use a full ref name
+ WithRef(refFullName.String()).
WithPayload(&api.CreatePayload{
- Ref: refFullName.ShortName(),
+ Ref: refFullName.String(),
Sha: refID,
RefType: refFullName.RefType(),
Repo: apiRepo,
@@ -566,7 +572,7 @@ func (n *actionsNotifier) DeleteRef(ctx context.Context, pusher *user_model.User
newNotifyInput(repo, pusher, webhook_module.HookEventDelete).
WithPayload(&api.DeletePayload{
- Ref: refFullName.ShortName(),
+ Ref: refFullName.String(),
RefType: refFullName.RefType(),
PusherType: api.PusherTypeUser,
Repo: apiRepo,
@@ -623,6 +629,10 @@ func (n *actionsNotifier) UpdateRelease(ctx context.Context, doer *user_model.Us
}
func (n *actionsNotifier) DeleteRelease(ctx context.Context, doer *user_model.User, rel *repo_model.Release) {
+ if rel.IsTag {
+ // has sent same action in `PushCommits`, so skip it.
+ return
+ }
ctx = withMethod(ctx, "DeleteRelease")
notifyRelease(ctx, doer, rel, api.HookReleaseDeleted)
}