|
36 | 36 | echo "conclusion=success" >> "$GITHUB_OUTPUT" |
37 | 37 | printf 'summary=%s\n' "No PR context; skipping gatekeeper checks." >> "$GITHUB_OUTPUT" |
38 | 38 | echo "details=" >> "$GITHUB_OUTPUT" |
| 39 | + echo "is_bot=false" >> "$GITHUB_OUTPUT" |
39 | 40 | exit 0 |
40 | 41 | fi |
41 | 42 |
|
|
57 | 58 | echo "conclusion=success" >> "$GITHUB_OUTPUT" |
58 | 59 | printf 'summary=%s\n' "Not a Devin-authored PR. Skipping human-review enforcement." >> "$GITHUB_OUTPUT" |
59 | 60 | echo "details=" >> "$GITHUB_OUTPUT" |
| 61 | + echo "is_bot=false" >> "$GITHUB_OUTPUT" |
60 | 62 | exit 0 |
61 | 63 | fi |
| 64 | + echo "is_bot=true" >> "$GITHUB_OUTPUT" |
62 | 65 |
|
63 | 66 | # 3. Reduce to latest review per human |
64 | 67 | LATEST_REVIEWS_JSON=$( |
@@ -103,8 +106,8 @@ jobs: |
103 | 106 | fi |
104 | 107 |
|
105 | 108 | echo "approvals.human_unique=$COUNT" >> "$GITHUB_OUTPUT" |
106 | | - echo "approvals.list=$APPROVERS" >> "$GITHUB_OUTPUT" |
107 | | - echo "approvals.missing=$MISSING" >> "$GITHUB_OUTPUT" |
| 109 | + echo "approvals_list=$APPROVERS" >> "$GITHUB_OUTPUT" |
| 110 | + echo "approvals_missing=$MISSING" >> "$GITHUB_OUTPUT" |
108 | 111 | { |
109 | 112 | echo "details<<EOF" |
110 | 113 | echo "$DETAILS" |
@@ -141,23 +144,31 @@ jobs: |
141 | 144 | -f output[text]="$DETAILS" |
142 | 145 |
|
143 | 146 | - name: Post Security Comment |
144 | | - if: steps.evaluate.outputs.conclusion == 'failure' |
| 147 | + if: steps.evaluate.outputs.is_bot == 'true' |
145 | 148 | continue-on-error: true |
146 | 149 | env: |
147 | 150 | GH_TOKEN: ${{ github.token }} |
148 | 151 | PR: ${{ github.event.pull_request.number }} |
149 | 152 | REPO: ${{ github.repository }} |
150 | | - APPROVERS: ${{ steps.evaluate.outputs.approvals.list }} |
151 | | - MISSING: ${{ steps.evaluate.outputs.approvals.missing }} |
| 153 | + APPROVERS: ${{ steps.evaluate.outputs.approvals_list }} |
| 154 | + MISSING: ${{ steps.evaluate.outputs.approvals_missing }} |
| 155 | + CONCLUSION: ${{ steps.evaluate.outputs.conclusion }} |
152 | 156 | run: | |
153 | 157 | set -euo pipefail |
154 | 158 | MARKER="<!-- bot-proxy-gatekeeper-comment -->" |
155 | 159 | APPROVER_LINE="Current approvals: ${APPROVERS:-none}" |
156 | | - MSG=$(printf "%s\n%s\n\n**%s**\n**Missing:** %s" \ |
157 | | - "$MARKER" \ |
158 | | - "⚠️ **Review Required**: A **human** is required to review bot PRs. 2 different human approvals are required before this PR can be merged." \ |
159 | | - "$APPROVER_LINE" \ |
160 | | - "$MISSING") |
| 160 | + if [ "$CONCLUSION" = "success" ]; then |
| 161 | + MSG=$(printf "%s\n%s\n\n**%s**" \ |
| 162 | + "$MARKER" \ |
| 163 | + "✅ **Review Requirements Satisfied**: 2 different human approvals are present." \ |
| 164 | + "$APPROVER_LINE") |
| 165 | + else |
| 166 | + MSG=$(printf "%s\n%s\n\n**%s**\n**Missing:** %s" \ |
| 167 | + "$MARKER" \ |
| 168 | + "⚠️ **Review Required**: A **human** is required to review bot PRs. 2 different human approvals are required before this PR can be merged." \ |
| 169 | + "$APPROVER_LINE" \ |
| 170 | + "${MISSING:-2}") |
| 171 | + fi |
161 | 172 |
|
162 | 173 | COMMENT_ID=$( |
163 | 174 | gh api "repos/$REPO/issues/$PR/comments" \ |
|
0 commit comments