summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/actions/run.go20
-rw-r--r--services/actions/notifier_helper.go13
-rw-r--r--templates/repo/actions/runs_list.tmpl9
3 files changed, 38 insertions, 4 deletions
diff --git a/models/actions/run.go b/models/actions/run.go
index 2b748bb0d5..14d191c814 100644
--- a/models/actions/run.go
+++ b/models/actions/run.go
@@ -6,11 +6,13 @@ package actions
import (
"context"
"fmt"
+ "strings"
"time"
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/json"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/timeutil"
@@ -63,6 +65,24 @@ func (run *ActionRun) Link() string {
return fmt.Sprintf("%s/actions/runs/%d", run.Repo.Link(), run.Index)
}
+// RefLink return the url of run's ref
+func (run *ActionRun) RefLink() string {
+ refName := git.RefName(run.Ref)
+ if refName.RefGroup() == "pull" {
+ return run.Repo.Link() + "/pulls/" + refName.ShortName()
+ }
+ return git.RefURL(run.Repo.Link(), run.Ref)
+}
+
+// PrettyRef return #id for pull ref or ShortName for others
+func (run *ActionRun) PrettyRef() string {
+ refName := git.RefName(run.Ref)
+ if refName.RefGroup() == "pull" {
+ return "#" + strings.TrimSuffix(strings.TrimPrefix(run.Ref, git.PullPrefix), "/head")
+ }
+ return refName.ShortName()
+}
+
// LoadAttributes load Repo TriggerUser if not loaded
func (run *ActionRun) LoadAttributes(ctx context.Context) error {
if run == nil {
diff --git a/services/actions/notifier_helper.go b/services/actions/notifier_helper.go
index 44df568cbe..9c9fc644cb 100644
--- a/services/actions/notifier_helper.go
+++ b/services/actions/notifier_helper.go
@@ -67,7 +67,6 @@ type notifyInput struct {
func newNotifyInput(repo *repo_model.Repository, doer *user_model.User, event webhook_module.HookEventType) *notifyInput {
return &notifyInput{
Repo: repo,
- Ref: repo.DefaultBranch,
Doer: doer,
Event: event,
}
@@ -90,6 +89,9 @@ func (input *notifyInput) WithPayload(payload api.Payloader) *notifyInput {
func (input *notifyInput) WithPullRequest(pr *issues_model.PullRequest) *notifyInput {
input.PullRequest = pr
+ if input.Ref == "" {
+ input.Ref = pr.GetGitRefName()
+ }
return input
}
@@ -124,8 +126,13 @@ func notify(ctx context.Context, input *notifyInput) error {
}
defer gitRepo.Close()
+ ref := input.Ref
+ if ref == "" {
+ ref = input.Repo.DefaultBranch
+ }
+
// Get the commit object for the ref
- commit, err := gitRepo.GetCommit(input.Ref)
+ commit, err := gitRepo.GetCommit(ref)
if err != nil {
return fmt.Errorf("gitRepo.GetCommit: %w", err)
}
@@ -152,7 +159,7 @@ func notify(ctx context.Context, input *notifyInput) error {
OwnerID: input.Repo.OwnerID,
WorkflowID: id,
TriggerUserID: input.Doer.ID,
- Ref: input.Ref,
+ Ref: ref,
CommitSHA: commit.ID.String(),
IsForkPullRequest: input.PullRequest != nil && input.PullRequest.IsFromFork(),
Event: input.Event,
diff --git a/templates/repo/actions/runs_list.tmpl b/templates/repo/actions/runs_list.tmpl
index 2e2e037de0..d3eb12430f 100644
--- a/templates/repo/actions/runs_list.tmpl
+++ b/templates/repo/actions/runs_list.tmpl
@@ -7,8 +7,15 @@
<div class="issue-item-main f1 fc df">
<div class="issue-item-top-row">
<a class="index ml-0 mr-2" href="{{if .HTMLURL}}{{.HTMLURL}}{{else}}{{$.Link}}/{{.Index}}{{end}}">
- {{.Title}} <span class="ui label">{{RefShortName .Ref}}</span>
+ {{.Title}}
</a>
+ <span class="ui label">
+ {{if .RefLink}}
+ <a href="{{.RefLink}}">{{.PrettyRef}}</a>
+ {{else}}
+ {{.PrettyRef}}
+ {{end}}
+ </span>
</div>
<div class="desc issue-item-bottom-row df ac fw my-1">
<b>{{if not $.CurWorkflow}}{{.WorkflowID}} {{end}}#{{.Index}}</b>: {{$.locale.Tr "actions.runs.commit"}}