Skip to content

Commit 709fdb6

Browse files
committed
use StatusCheckData for template
1 parent 1485889 commit 709fdb6

File tree

3 files changed

+38
-26
lines changed

3 files changed

+38
-26
lines changed

routers/web/repo/pull.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,14 @@ func prepareMergedViewPullInfo(ctx *context.Context, issue *issues_model.Issue)
312312
return compareInfo
313313
}
314314

315+
type pullCommitStatusCheckData struct {
316+
MissingRequiredChecks []string
317+
IsContextRequired func(string) bool
318+
RequireApproval bool
319+
CanApprove bool
320+
ApproveActionLink string
321+
}
322+
315323
// prepareViewPullInfo show meta information for a pull request preview page
316324
func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *pull_service.CompareInfo {
317325
ctx.Data["PullRequestWorkInProgressPrefixes"] = setting.Repository.PullRequest.WorkInProgressPrefixes
@@ -456,7 +464,11 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *pull_
456464
ctx.ServerError(fmt.Sprintf("GetRefCommitID(%s)", pull.GetGitHeadRefName()), err)
457465
return nil
458466
}
459-
ctx.Data["SHA"] = sha
467+
468+
statusCheckData := &pullCommitStatusCheckData{
469+
ApproveActionLink: fmt.Sprintf("%s/actions/approve-all-checks?sha=%s&redirect=%s", repo.Link(), sha, issue.Link()),
470+
}
471+
ctx.Data["StatusCheckData"] = statusCheckData
460472

461473
commitStatuses, err := git_model.GetLatestCommitStatus(ctx, repo.ID, sha, db.ListOptionsAll)
462474
if err != nil {
@@ -474,11 +486,12 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *pull_
474486
}
475487
for _, run := range runs {
476488
if run.NeedApproval {
477-
ctx.Data["RequireApproval"] = true
489+
statusCheckData.RequireApproval = true
490+
break
478491
}
479492
}
480-
if ctx.Data["RequireApproval"] == true {
481-
ctx.Data["CanApprove"] = ctx.Repo.CanWrite(unit.TypeActions)
493+
if statusCheckData.RequireApproval {
494+
statusCheckData.CanApprove = ctx.Repo.CanWrite(unit.TypeActions)
482495
}
483496

484497
if len(commitStatuses) > 0 {
@@ -502,9 +515,9 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *pull_
502515
missingRequiredChecks = append(missingRequiredChecks, requiredContext)
503516
}
504517
}
505-
ctx.Data["MissingRequiredChecks"] = missingRequiredChecks
518+
statusCheckData.MissingRequiredChecks = missingRequiredChecks
506519

507-
ctx.Data["is_context_required"] = func(context string) bool {
520+
statusCheckData.IsContextRequired = func(context string) bool {
508521
for _, c := range pb.StatusCheckContexts {
509522
if c == context {
510523
return true

templates/repo/issue/view_content/pull_merge_box.tmpl

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,8 @@
3131
{{template "repo/pulls/status" (dict
3232
"CommitStatus" .LatestCommitStatus
3333
"CommitStatuses" .LatestCommitStatuses
34-
"MissingRequiredChecks" .MissingRequiredChecks
3534
"ShowHideChecks" true
36-
"is_context_required" .is_context_required
37-
"SHA" .SHA
38-
"RequireApproval" .RequireApproval
39-
"CanApprove" .CanApprove
40-
"RepoLink" .RepoLink
41-
"IssueLink" .Issue.Link
35+
"StatusCheckData" .StatusCheckData
4236
)}}
4337
</div>
4438
{{end}}

templates/repo/pulls/status.tmpl

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
{{/* Template Attributes:
22
* CommitStatus: summary of all commit status state
33
* CommitStatuses: all commit status elements
4-
* MissingRequiredChecks: commit check contexts that are required by branch protection but not present
54
* ShowHideChecks: whether use a button to show/hide the checks
6-
* is_context_required: Used in pull request commit status check table
5+
* StatusCheckData: additional status check data for repo/issue/view_content/pull_merge_box
6+
- MissingRequiredChecks: list of missing required checks
7+
- IsContextRequired: function to check whether a context is required
8+
- RequireApproval: whether approval is required for workflow runs
9+
- CanApprove: whether the user can approve workflow runs
10+
- ApproveActionLink: link to approve all checks
711
*/}}
812

913
{{if .CommitStatus}}
@@ -24,10 +28,9 @@
2428
{{end}}
2529

2630
<div class="ui right">
27-
{{if and .RequireApproval .CanApprove}}
28-
<form method="post" action="{{.RepoLink}}/actions/approve-all-checks?redirect={{.IssueLink}}">
31+
{{if and .StatusCheckData .StatusCheckData.RequireApproval .StatusCheckData.CanApprove}}
32+
<form method="post" action="{{.StatusCheckData.ApproveActionLink}}">
2933
{{ctx.RootData.CsrfTokenHtml}}
30-
<input type="hidden" name="sha" value="{{.SHA}}">
3134
<button type="submit" class="ui basic small compact button">
3235
{{ctx.Locale.Tr "repo.pulls.status_checks_approve_all"}}
3336
</button>
@@ -48,19 +51,21 @@
4851
{{template "repo/commit_status" .}}
4952
<div class="status-context gt-ellipsis">{{.Context}} <span class="text light-2">{{.Description}}</span></div>
5053
<div class="ui status-details">
51-
{{if $.is_context_required}}
52-
{{if (call $.is_context_required .Context)}}<div class="ui label">{{ctx.Locale.Tr "repo.pulls.status_checks_requested"}}</div>{{end}}
54+
{{if and $.StatusCheckData $.StatusCheckData.IsContextRequired}}
55+
{{if (call $.StatusCheckData.IsContextRequired .Context)}}<div class="ui label">{{ctx.Locale.Tr "repo.pulls.status_checks_requested"}}</div>{{end}}
5356
{{end}}
5457
<span>{{if .TargetURL}}<a href="{{.TargetURL}}">{{ctx.Locale.Tr "repo.pulls.status_checks_details"}}</a>{{end}}</span>
5558
</div>
5659
</div>
5760
{{end}}
58-
{{range .MissingRequiredChecks}}
59-
<div class="commit-status-item">
60-
{{svg "octicon-dot-fill" 18 "commit-status icon text yellow"}}
61-
<div class="status-context gt-ellipsis">{{.}}</div>
62-
<div class="ui label">{{ctx.Locale.Tr "repo.pulls.status_checks_requested"}}</div>
63-
</div>
61+
{{if .StatusCheckData}}
62+
{{range .StatusCheckData.MissingRequiredChecks}}
63+
<div class="commit-status-item">
64+
{{svg "octicon-dot-fill" 18 "commit-status icon text yellow"}}
65+
<div class="status-context gt-ellipsis">{{.}}</div>
66+
<div class="ui label">{{ctx.Locale.Tr "repo.pulls.status_checks_requested"}}</div>
67+
</div>
68+
{{end}}
6469
{{end}}
6570
</div>
6671
</div>

0 commit comments

Comments
 (0)