@plainconceptsplatform/workflows 0.24.2 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -230,6 +230,14 @@ classify_route() {
|
|
|
230
230
|
error="operation 'merge-gate' needs a positive pr-number, got '${INPUT_PR_NUMBER:-}'"
|
|
231
231
|
fi
|
|
232
232
|
;;
|
|
233
|
+
visual-verify)
|
|
234
|
+
if is_issue_number "${INPUT_PR_NUMBER:-}"; then
|
|
235
|
+
route="visual-verify"
|
|
236
|
+
pr_number="${INPUT_PR_NUMBER}"
|
|
237
|
+
else
|
|
238
|
+
error="operation 'visual-verify' needs a positive pr-number, got '${INPUT_PR_NUMBER:-}'"
|
|
239
|
+
fi
|
|
240
|
+
;;
|
|
233
241
|
audit)
|
|
234
242
|
route="${OPERATION}"
|
|
235
243
|
trigger_kind="${INPUT_TRIGGER_KIND:-manual}"
|
|
@@ -68,11 +68,6 @@ runs:
|
|
|
68
68
|
|
|
69
69
|
[ "$(jq -r '.state' <<<"$pr")" = "OPEN" ] || none "PR #$PR_NUMBER is not open"
|
|
70
70
|
|
|
71
|
-
# Use GitHub's bot flag because App login formats differ across APIs.
|
|
72
|
-
if [ "$(jq -r '.author.is_bot' <<<"$pr")" != "true" ]; then
|
|
73
|
-
none "PR #$PR_NUMBER was authored by $(jq -r '.author.login' <<<"$pr"), a human."
|
|
74
|
-
fi
|
|
75
|
-
|
|
76
71
|
issue="$LINKED_ISSUE"
|
|
77
72
|
|
|
78
73
|
if [ -z "$issue" ]; then
|
|
@@ -67,6 +67,9 @@ run-name: >-
|
|
|
67
67
|
&& inputs.operation == 'merge-gate'
|
|
68
68
|
&& format('Working (Merge Gate): PR #{0}', inputs.pr-number)
|
|
69
69
|
|| github.event_name == 'workflow_dispatch'
|
|
70
|
+
&& inputs.operation == 'visual-verify'
|
|
71
|
+
&& format('Working (Visual Verify): PR #{0}', inputs.pr-number)
|
|
72
|
+
|| github.event_name == 'workflow_dispatch'
|
|
70
73
|
&& inputs.operation == 'batch'
|
|
71
74
|
&& format('Working (Batch): #{0}', inputs.issue-number)
|
|
72
75
|
|| github.event_name == 'workflow_dispatch'
|
|
@@ -175,6 +178,7 @@ on:
|
|
|
175
178
|
- triage
|
|
176
179
|
- apply-review
|
|
177
180
|
- merge-gate
|
|
181
|
+
- visual-verify
|
|
178
182
|
- audit
|
|
179
183
|
- audit-close
|
|
180
184
|
- cleanup-artifacts
|
|
@@ -598,6 +602,19 @@ jobs:
|
|
|
598
602
|
BOT_PRIVATE_KEY: ${{ secrets.BOT_PRIVATE_KEY }}
|
|
599
603
|
AGENTMEMORY_SECRET: ${{ secrets.AGENTMEMORY_SECRET }}
|
|
600
604
|
|
|
605
|
+
call-visual-verify:
|
|
606
|
+
needs: classify
|
|
607
|
+
if: needs.classify.outputs.route == 'visual-verify'
|
|
608
|
+
uses: ./.github/workflows/agent-visual-verify.lock.yml
|
|
609
|
+
permissions: write-all
|
|
610
|
+
with:
|
|
611
|
+
pr-number: ${{ needs.classify.outputs.pr-number }}
|
|
612
|
+
linked-issue: ${{ needs.classify.outputs.linked-issue }}
|
|
613
|
+
secrets:
|
|
614
|
+
OPENAI_API_KEY: ${{ secrets.FORGE_API_KEY }}
|
|
615
|
+
CODEX_API_KEY: ${{ secrets.FORGE_API_KEY }}
|
|
616
|
+
COPILOT_GITHUB_TOKEN: ${{ secrets.FORGE_API_KEY }}
|
|
617
|
+
|
|
601
618
|
call-audit:
|
|
602
619
|
needs: classify
|
|
603
620
|
if: needs.classify.outputs.route == 'audit'
|
|
@@ -667,10 +684,10 @@ jobs:
|
|
|
667
684
|
# pull_request_target. Two entry points:
|
|
668
685
|
# opened / reopened / synchronize → check the pull request that changed. Gated to this
|
|
669
686
|
# repository's own branches so a fork PR never starts this App-token job.
|
|
670
|
-
# closed & merged → the target branch moved, so re-check every open
|
|
687
|
+
# closed & merged → the target branch moved, so re-check every open
|
|
671
688
|
# pull request that may have just become conflicted (the "main changed after another PR
|
|
672
689
|
# merged" case). A merge into the default branch is an inherently trusted internal event.
|
|
673
|
-
# It dispatches only for
|
|
690
|
+
# It dispatches only for open, non-draft pull requests whose head is this
|
|
674
691
|
# repository AND whose CI has already concluded (dispatching while CI is still pending would
|
|
675
692
|
# make the gate read a 'pending' verdict and prematurely ask for human review; that PR is
|
|
676
693
|
# covered by the CI-completion route instead). The gate's subject job re-validates ownership
|
|
@@ -715,8 +732,8 @@ jobs:
|
|
|
715
732
|
run: |
|
|
716
733
|
set -euo pipefail
|
|
717
734
|
|
|
718
|
-
# Dispatch the Merge Gate for one pull request when it is a red-CI open, non-draft
|
|
719
|
-
#
|
|
735
|
+
# Dispatch the Merge Gate for one pull request when it is a red-CI open, non-draft
|
|
736
|
+
# pull request on this repository whose CI has concluded — the
|
|
720
737
|
# conflict case is one arm of that, because a conflicting PR never gets a fresh
|
|
721
738
|
# CI run of its own; a merge conflict with red or concluded CI is the same
|
|
722
739
|
# "needs the gate" signal. A green non-conflicting PR is left for the merge belt
|
|
@@ -760,7 +777,6 @@ jobs:
|
|
|
760
777
|
[ -n "$meta" ] || return 0
|
|
761
778
|
if [ "$(jq -r '.state' <<<"$meta")" != "open" ] \
|
|
762
779
|
|| [ "$(jq -r '.draft' <<<"$meta")" != "false" ] \
|
|
763
|
-
|| [ "$(jq -r '.bot' <<<"$meta")" != "Bot" ] \
|
|
764
780
|
|| [ "$(jq -r '.head' <<<"$meta")" != "$REPO" ]; then
|
|
765
781
|
return 0
|
|
766
782
|
fi
|