diff options
author | Markus Amshove <scm@amshove.dev> | 2024-02-19 10:57:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-19 09:57:08 +0000 |
commit | a11ccc9fcd61fb25ffb1c37b87a0df4ee9efd84e (patch) | |
tree | 3c392ad019ae85286769e46d7c6d2082dec65da8 /templates | |
parent | 0ea8de2d0729e1e1d0ea9de1e59fbcb673e87fd2 (diff) | |
download | gitea-a11ccc9fcd61fb25ffb1c37b87a0df4ee9efd84e.tar.gz gitea-a11ccc9fcd61fb25ffb1c37b87a0df4ee9efd84e.zip |
Disallow merge when required checked are missing (#29143)
fixes #21892
This PR disallows merging a PR when not all commit status contexts
configured in the branch protection are met.
Previously, the PR was happy to merge when one commit status was
successful and the other contexts weren't reported.
Any feedback is welcome, first time Go :-)
I'm also not sure if the changes in the template break something else
Given the following branch protection:

This was shown before the change:

With the change, it is now shown as this:

---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'templates')
-rw-r--r-- | templates/repo/issue/view_content/pull.tmpl | 1 | ||||
-rw-r--r-- | templates/repo/pulls/status.tmpl | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/templates/repo/issue/view_content/pull.tmpl b/templates/repo/issue/view_content/pull.tmpl index a28b849f98..e86deb8915 100644 --- a/templates/repo/issue/view_content/pull.tmpl +++ b/templates/repo/issue/view_content/pull.tmpl @@ -24,6 +24,7 @@ {{template "repo/pulls/status" (dict "CommitStatus" .LatestCommitStatus "CommitStatuses" .LatestCommitStatuses + "MissingRequiredChecks" .MissingRequiredChecks "ShowHideChecks" true "is_context_required" .is_context_required )}} diff --git a/templates/repo/pulls/status.tmpl b/templates/repo/pulls/status.tmpl index ae508b8fa4..e8636ba1b8 100644 --- a/templates/repo/pulls/status.tmpl +++ b/templates/repo/pulls/status.tmpl @@ -2,6 +2,7 @@ Template Attributes: * CommitStatus: summary of all commit status state * CommitStatuses: all commit status elements +* MissingRequiredChecks: commit check contexts that are required by branch protection but not present * ShowHideChecks: whether use a button to show/hide the checks * is_context_required: Used in pull request commit status check table */}} @@ -9,7 +10,7 @@ Template Attributes: {{if .CommitStatus}} <div class="commit-status-panel"> <div class="ui top attached header commit-status-header"> - {{if eq .CommitStatus.State "pending"}} + {{if or (eq .CommitStatus.State "pending") (.MissingRequiredChecks)}} {{ctx.Locale.Tr "repo.pulls.status_checking"}} {{else if eq .CommitStatus.State "success"}} {{ctx.Locale.Tr "repo.pulls.status_checks_success"}} @@ -46,6 +47,13 @@ Template Attributes: </div> </div> {{end}} + {{range .MissingRequiredChecks}} + <div class="commit-status-item"> + {{svg "octicon-dot-fill" 18 "commit-status icon text yellow"}} + <div class="status-context gt-ellipsis">{{.}}</div> + <div class="ui label">{{ctx.Locale.Tr "repo.pulls.status_checks_requested"}}</div> + </div> + {{end}} </div> </div> {{end}} |