@plainconceptsplatform/workflows 1.9.1 → 1.10.1
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.
- package/dist/package-baseline.js +4 -1
- package/loops/actions/add-issue-labels/action.yml +50 -50
- package/loops/actions/agent-output.cjs +17 -17
- package/loops/actions/apply-agent-bundle/action.yml +24 -24
- package/loops/actions/apply-agent-comments/action.yml +42 -42
- package/loops/actions/apply-agent-labels/action.yml +55 -55
- package/loops/actions/cleanup-artifacts/action.yml +91 -91
- package/loops/actions/close-agent-issues/action.yml +43 -43
- package/loops/actions/collect-doc-drift/collect-doc-drift.mjs +7 -3
- package/loops/actions/create-issue-comment/action.yml +29 -29
- package/loops/actions/download-agent-output/action.yml +53 -53
- package/loops/actions/identify-gate-subject/action.yml +4 -0
- package/loops/actions/link-pr-to-issue/action.yml +40 -40
- package/loops/actions/list-open-issues/action.yml +33 -33
- package/loops/actions/load-issue-context/action.yml +45 -45
- package/loops/actions/merge-agent-pr/action.yml +49 -49
- package/loops/actions/remove-issue-labels/action.yml +37 -37
- package/loops/actions/report-workflow-errors/action.yml +63 -16
- package/loops/actions/report-workflow-errors/report-policy.cjs +89 -5
- package/loops/actions/update-agent-issues/action.yml +58 -58
- package/loops/actions/validate-refine-output/action.yml +6 -1
- package/loops/actions/validate-refine-output/validate-refine-output.sh +20 -2
- package/loops/actions/validate-review-output/action.yml +35 -35
- package/loops/actions/validate-triage-output/action.yml +36 -36
- package/loops/actions/verify-composite-actions/action.yml +9 -9
- package/loops/actions/verify-refine-output/action.yml +9 -9
- package/loops/actions/verify-route-matrix/action.yml +9 -9
- package/loops/actions/verify-route-matrix/verify-route-matrix.sh +20 -0
- package/loops/templates/agentics/agentics-maintenance.yml +121 -121
- package/loops/templates/issues/bug_report.yml +109 -109
- package/loops/templates/issues/feature_request.yml +75 -75
- package/loops/workflows/agent-merge-gate.md +11 -7
- package/loops/workflows/agent-refine.md +61 -11
- package/loops/workflows/shared/platform-defaults.md +53 -53
- package/loops/workflows/work-router.yml +77 -1
- package/package.json +1 -1
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/validate-triage-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
-
name: Validate triage output
|
|
3
|
-
description: Verify agent_output.json contains a usable triage verdict before any GitHub writes.
|
|
4
|
-
inputs:
|
|
5
|
-
output-file:
|
|
6
|
-
description: Path to agent_output.json.
|
|
7
|
-
required: true
|
|
8
|
-
issue-number:
|
|
9
|
-
description: Issue number that every triage outcome must target.
|
|
10
|
-
required: true
|
|
11
|
-
outputs:
|
|
12
|
-
valid:
|
|
13
|
-
description: Whether the output contains a usable triage comment with a verdict.
|
|
14
|
-
value: ${{ steps.validate.outputs.valid }}
|
|
15
|
-
outcome:
|
|
16
|
-
description: "Deterministic triage outcome: pass, needs-info, needs-maintainer, block, or invalid."
|
|
17
|
-
value: ${{ steps.validate.outputs.outcome }}
|
|
18
|
-
runs:
|
|
19
|
-
using: composite
|
|
20
|
-
steps:
|
|
21
|
-
- name: Validate triage outcome
|
|
22
|
-
id: validate
|
|
23
|
-
shell: bash
|
|
24
|
-
env:
|
|
25
|
-
ISSUE_NUMBER: ${{ inputs.issue-number }}
|
|
26
|
-
OUTPUT_FILE: ${{ inputs.output-file }}
|
|
27
|
-
run: |
|
|
28
|
-
set -euo pipefail
|
|
29
|
-
|
|
30
|
-
outcome="$(bash "${{ github.action_path }}/validate-triage-output.sh" "$OUTPUT_FILE" "$ISSUE_NUMBER")"
|
|
31
|
-
echo "outcome=$outcome" >> "$GITHUB_OUTPUT"
|
|
32
|
-
echo "valid=$([ "$outcome" != 'invalid' ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
|
|
33
|
-
|
|
34
|
-
if [ "$outcome" = 'invalid' ]; then
|
|
35
|
-
echo "::warning::Agent output has no usable triage outcome. It will not be applied."
|
|
36
|
-
fi
|
|
1
|
+
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/validate-triage-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
+
name: Validate triage output
|
|
3
|
+
description: Verify agent_output.json contains a usable triage verdict before any GitHub writes.
|
|
4
|
+
inputs:
|
|
5
|
+
output-file:
|
|
6
|
+
description: Path to agent_output.json.
|
|
7
|
+
required: true
|
|
8
|
+
issue-number:
|
|
9
|
+
description: Issue number that every triage outcome must target.
|
|
10
|
+
required: true
|
|
11
|
+
outputs:
|
|
12
|
+
valid:
|
|
13
|
+
description: Whether the output contains a usable triage comment with a verdict.
|
|
14
|
+
value: ${{ steps.validate.outputs.valid }}
|
|
15
|
+
outcome:
|
|
16
|
+
description: "Deterministic triage outcome: pass, needs-info, needs-maintainer, block, or invalid."
|
|
17
|
+
value: ${{ steps.validate.outputs.outcome }}
|
|
18
|
+
runs:
|
|
19
|
+
using: composite
|
|
20
|
+
steps:
|
|
21
|
+
- name: Validate triage outcome
|
|
22
|
+
id: validate
|
|
23
|
+
shell: bash
|
|
24
|
+
env:
|
|
25
|
+
ISSUE_NUMBER: ${{ inputs.issue-number }}
|
|
26
|
+
OUTPUT_FILE: ${{ inputs.output-file }}
|
|
27
|
+
run: |
|
|
28
|
+
set -euo pipefail
|
|
29
|
+
|
|
30
|
+
outcome="$(bash "${{ github.action_path }}/validate-triage-output.sh" "$OUTPUT_FILE" "$ISSUE_NUMBER")"
|
|
31
|
+
echo "outcome=$outcome" >> "$GITHUB_OUTPUT"
|
|
32
|
+
echo "valid=$([ "$outcome" != 'invalid' ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
|
|
33
|
+
|
|
34
|
+
if [ "$outcome" = 'invalid' ]; then
|
|
35
|
+
echo "::warning::Agent output has no usable triage outcome. It will not be applied."
|
|
36
|
+
fi
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-composite-actions/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
-
name: Verify composite actions
|
|
3
|
-
description: Check every local composite action manifest parses and uses only contexts a composite action actually has.
|
|
4
|
-
runs:
|
|
5
|
-
using: composite
|
|
6
|
-
steps:
|
|
7
|
-
- name: Validate composite action manifests
|
|
8
|
-
shell: bash
|
|
9
|
-
run: bash "${GITHUB_ACTION_PATH}/verify-composite-actions.sh"
|
|
1
|
+
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-composite-actions/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
+
name: Verify composite actions
|
|
3
|
+
description: Check every local composite action manifest parses and uses only contexts a composite action actually has.
|
|
4
|
+
runs:
|
|
5
|
+
using: composite
|
|
6
|
+
steps:
|
|
7
|
+
- name: Validate composite action manifests
|
|
8
|
+
shell: bash
|
|
9
|
+
run: bash "${GITHUB_ACTION_PATH}/verify-composite-actions.sh"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-refine-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
-
name: Verify refine output validation
|
|
3
|
-
description: Exercise deterministic Refine output validation regressions.
|
|
4
|
-
runs:
|
|
5
|
-
using: composite
|
|
6
|
-
steps:
|
|
7
|
-
- name: Verify refinement outcomes
|
|
8
|
-
shell: bash
|
|
9
|
-
run: bash "${{ github.action_path }}/verify-refine-output.sh"
|
|
1
|
+
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-refine-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
+
name: Verify refine output validation
|
|
3
|
+
description: Exercise deterministic Refine output validation regressions.
|
|
4
|
+
runs:
|
|
5
|
+
using: composite
|
|
6
|
+
steps:
|
|
7
|
+
- name: Verify refinement outcomes
|
|
8
|
+
shell: bash
|
|
9
|
+
run: bash "${{ github.action_path }}/verify-refine-output.sh"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-route-matrix/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
-
name: Verify route matrix
|
|
3
|
-
description: Exercise the router's classifier against every supported event, and check that each route and dispatch operation has a job in work-router.yml.
|
|
4
|
-
runs:
|
|
5
|
-
using: composite
|
|
6
|
-
steps:
|
|
7
|
-
- name: Run route matrix verification
|
|
8
|
-
shell: bash
|
|
9
|
-
run: bash "${GITHUB_ACTION_PATH}/verify-route-matrix.sh"
|
|
1
|
+
# Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-route-matrix/action.yml. Update with workflows update --force; consumer edits may be overwritten.
|
|
2
|
+
name: Verify route matrix
|
|
3
|
+
description: Exercise the router's classifier against every supported event, and check that each route and dispatch operation has a job in work-router.yml.
|
|
4
|
+
runs:
|
|
5
|
+
using: composite
|
|
6
|
+
steps:
|
|
7
|
+
- name: Run route matrix verification
|
|
8
|
+
shell: bash
|
|
9
|
+
run: bash "${GITHUB_ACTION_PATH}/verify-route-matrix.sh"
|
|
@@ -2414,6 +2414,21 @@ if [ -f "$ERROR_REPORT_YML" ]; then
|
|
|
2414
2414
|
ok(p.isQuiet(null, now, 30) === false, "no closing date is not quiet");
|
|
2415
2415
|
ok(p.parseVersion("# Managed by @plainconceptsplatform/workflows@1.2.3. Source: x") === "1.2.3", "the version has no trailing full stop");
|
|
2416
2416
|
ok(p.parseVersion("nothing here") === "unknown", "no version reads as unknown");
|
|
2417
|
+
// The layer that still got through: a secret the consumer never set, an agent failure the
|
|
2418
|
+
// worker had already retried, a lint check failing on a pull request, an outdated install.
|
|
2419
|
+
ok(p.severityOf("missing-secret") === "consumer", "a missing secret belongs to the consumer");
|
|
2420
|
+
ok(p.causeFromStep("Validate CODEX_API_KEY or OPENAI_API_KEY secret") === "missing-secret", "the secret check is read from its step name");
|
|
2421
|
+
ok(p.causeFromStep("Execute OpenCode CLI") === null, "any other step is left to the catalogue");
|
|
2422
|
+
const held = p.select([f("s", 39, "consumer"), f("u", 2, "unknown"), f("k", 2, "package-bug")], { minOccurrences: 2, minUnknown: 3, maxFindings: 5 });
|
|
2423
|
+
ok(held.file.map((x) => x.patternId).join() === "k", "a consumer cause and an undiagnosed pair are held, a diagnosed pair is filed");
|
|
2424
|
+
const retry = (conclusion) => [{ steps: [{ name: "Execute OpenCode CLI", conclusion: "failure" }] }, { steps: [{ name: "Send the work back through the router", conclusion }] }];
|
|
2425
|
+
ok(p.wasRetried(retry("success")) === true, "a run whose retry was sent is answered");
|
|
2426
|
+
ok(p.wasRetried(retry("skipped")) === false, "a run that parked is not");
|
|
2427
|
+
ok(p.isReviewCheck({ workflow: "agentics-checks.yml", event: "pull_request" }) === true, "a check failing on a pull request did its job");
|
|
2428
|
+
ok(p.isReviewCheck({ workflow: "agentics-checks.yml", event: "push" }) === false, "a check failing on the default branch is read");
|
|
2429
|
+
ok(p.isOutdated("1.6.41", "v1.10.0") === true && p.isOutdated("1.10.0", "v1.10.1") === false, "only a minor or more behind is outdated");
|
|
2430
|
+
ok(p.isOutdated("unknown", "v1.10.0") === false && p.isOutdated("1.9.0", "") === false, "an unknown version files as before");
|
|
2431
|
+
ok(p.latestVersion(["v1.9.4", "v1.10.0", "v0.28.11-alpha.1", "v1.8.3"]) === "v1.10.0", "the newest tag is read numerically, prereleases left out");
|
|
2417
2432
|
if (bad.length) { console.error(bad.join("\n")); process.exit(1); }
|
|
2418
2433
|
'
|
|
2419
2434
|
if node -e "$policy_js" "$POLICY_CJS" 2>/tmp/policy-err; then
|
|
@@ -2432,6 +2447,9 @@ if [ -f "$ERROR_REPORT_YML" ]; then
|
|
|
2432
2447
|
er "patternId === 'log-unavailable'\) \{ quiet\.unreadable \+= 1; continue; \}" 'files jobs whose log could not be read'
|
|
2433
2448
|
er 'policy\.isQuiet\(' 'does not keep a recently closed signature quiet'
|
|
2434
2449
|
er 'listAnnotations' 'does not read the job annotations, where the runner shutdown is written'
|
|
2450
|
+
er 'if \(policy\.wasRetried\(jobs\)\) \{ quiet\.retried \+= 1; continue; \}' 'files agent failures the worker already retried'
|
|
2451
|
+
er 'if \(policy\.isReviewCheck\(.*\{ quiet\.reviewChecks \+= 1; continue; \}' 'files lint checks that failed on a pull request'
|
|
2452
|
+
er 'if \(!existing && policy\.isOutdated\(' 'opens issues from installs a minor or more behind'
|
|
2435
2453
|
|
|
2436
2454
|
# 4. No model. A model asked to summarise a failure paraphrases whatever the log held, which
|
|
2437
2455
|
# is the one thing that must not cross the boundary. This job stays deterministic.
|
|
@@ -2626,6 +2644,8 @@ assert "a dispatched apply-review carries its attempt count" 3 \
|
|
|
2626
2644
|
"$(route_field attempts EVENT=workflow_dispatch OPERATION=apply-review INPUT_PR_NUMBER=9 INPUT_ATTEMPTS_SO_FAR=3)"
|
|
2627
2645
|
assert "a dispatched refine still carries its mode alongside the count" rerefine \
|
|
2628
2646
|
"$(route_field refine-mode EVENT=workflow_dispatch OPERATION=refine INPUT_ISSUE_NUMBER=42 INPUT_MODE=rerefine INPUT_ATTEMPTS_SO_FAR=3)"
|
|
2647
|
+
assert "the hourly sweep's assume pass reaches refine in assume mode" assume \
|
|
2648
|
+
"$(route_field refine-mode EVENT=workflow_dispatch OPERATION=refine INPUT_ISSUE_NUMBER=42 INPUT_MODE=assume)"
|
|
2629
2649
|
|
|
2630
2650
|
if [ "$RETRY_OK" -eq 1 ]; then PASS=$((PASS + 1)); else FAIL=$((FAIL + 1)); fi
|
|
2631
2651
|
|
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
# Managed by @plainconceptsplatform/workflows. Source: loops/templates/agentics/agentics-maintenance.yml. Update with `workflows update --force`; consumer edits may be overwritten.
|
|
2
|
-
# Derived from the gh-aw v0.87.5 maintenance workflow.
|
|
3
|
-
# Copy provenance is documented in docs/ownership.md.
|
|
4
|
-
name: Agentic Maintenance
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
schedule:
|
|
8
|
-
- cron: "37 0 * * *"
|
|
9
|
-
workflow_dispatch:
|
|
10
|
-
inputs:
|
|
11
|
-
operation:
|
|
12
|
-
description: Optional maintenance operation to run
|
|
13
|
-
required: false
|
|
14
|
-
type: choice
|
|
15
|
-
default: ""
|
|
16
|
-
options:
|
|
17
|
-
- ""
|
|
18
|
-
- disable
|
|
19
|
-
- enable
|
|
20
|
-
- update
|
|
21
|
-
- upgrade
|
|
22
|
-
- safe_outputs
|
|
23
|
-
- create_labels
|
|
24
|
-
- activity_report
|
|
25
|
-
- close_agentic_workflows_issues
|
|
26
|
-
- clean_cache_memories
|
|
27
|
-
- update_pull_request_branches
|
|
28
|
-
- validate
|
|
29
|
-
- forecast
|
|
30
|
-
run_url:
|
|
31
|
-
description: Run URL or run ID required for safe_outputs
|
|
32
|
-
required: false
|
|
33
|
-
type: string
|
|
34
|
-
default: ""
|
|
35
|
-
workflow_call:
|
|
36
|
-
inputs:
|
|
37
|
-
operation:
|
|
38
|
-
required: false
|
|
39
|
-
type: string
|
|
40
|
-
default: ""
|
|
41
|
-
run_url:
|
|
42
|
-
required: false
|
|
43
|
-
type: string
|
|
44
|
-
default: ""
|
|
45
|
-
|
|
46
|
-
permissions: {}
|
|
47
|
-
|
|
48
|
-
jobs:
|
|
49
|
-
close-expired-discussions:
|
|
50
|
-
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
|
|
51
|
-
runs-on: agents-arc
|
|
52
|
-
permissions:
|
|
53
|
-
discussions: write
|
|
54
|
-
steps:
|
|
55
|
-
- name: Setup Scripts
|
|
56
|
-
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
57
|
-
with:
|
|
58
|
-
destination: ${{ runner.temp }}/gh-aw/actions
|
|
59
|
-
- name: Close expired discussions
|
|
60
|
-
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
61
|
-
with:
|
|
62
|
-
script: |
|
|
63
|
-
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
64
|
-
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
65
|
-
const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_discussions.cjs');
|
|
66
|
-
await main();
|
|
67
|
-
close-expired-issues:
|
|
68
|
-
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
|
|
69
|
-
runs-on: agents-arc
|
|
70
|
-
permissions:
|
|
71
|
-
issues: write
|
|
72
|
-
steps:
|
|
73
|
-
- name: Setup Scripts
|
|
74
|
-
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
75
|
-
with:
|
|
76
|
-
destination: ${{ runner.temp }}/gh-aw/actions
|
|
77
|
-
- name: Close expired issues
|
|
78
|
-
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
79
|
-
with:
|
|
80
|
-
script: |
|
|
81
|
-
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
82
|
-
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
83
|
-
const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_issues.cjs');
|
|
84
|
-
await main();
|
|
85
|
-
close-expired-pull-requests:
|
|
86
|
-
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
|
|
87
|
-
runs-on: agents-arc
|
|
88
|
-
permissions:
|
|
89
|
-
pull-requests: write
|
|
90
|
-
steps:
|
|
91
|
-
- name: Setup Scripts
|
|
92
|
-
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
93
|
-
with:
|
|
94
|
-
destination: ${{ runner.temp }}/gh-aw/actions
|
|
95
|
-
- name: Close expired pull requests
|
|
96
|
-
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
97
|
-
with:
|
|
98
|
-
script: |
|
|
99
|
-
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
100
|
-
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
101
|
-
const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_pull_requests.cjs');
|
|
102
|
-
await main();
|
|
103
|
-
cleanup-cache-memory:
|
|
104
|
-
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '' || inputs.operation == 'clean_cache_memories') }}
|
|
105
|
-
runs-on: agents-arc
|
|
106
|
-
permissions:
|
|
107
|
-
actions: write
|
|
108
|
-
steps:
|
|
109
|
-
- name: Setup Scripts
|
|
110
|
-
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
111
|
-
with:
|
|
112
|
-
destination: ${{ runner.temp }}/gh-aw/actions
|
|
113
|
-
- name: Cleanup outdated cache-memory entries
|
|
114
|
-
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
115
|
-
with:
|
|
116
|
-
script: |
|
|
117
|
-
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
118
|
-
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
119
|
-
const { main } = require('${{ runner.temp }}/gh-aw/actions/cleanup_cache_memory.cjs');
|
|
120
|
-
await main();
|
|
121
|
-
#
|
|
1
|
+
# Managed by @plainconceptsplatform/workflows. Source: loops/templates/agentics/agentics-maintenance.yml. Update with `workflows update --force`; consumer edits may be overwritten.
|
|
2
|
+
# Derived from the gh-aw v0.87.5 maintenance workflow.
|
|
3
|
+
# Copy provenance is documented in docs/ownership.md.
|
|
4
|
+
name: Agentic Maintenance
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
schedule:
|
|
8
|
+
- cron: "37 0 * * *"
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs:
|
|
11
|
+
operation:
|
|
12
|
+
description: Optional maintenance operation to run
|
|
13
|
+
required: false
|
|
14
|
+
type: choice
|
|
15
|
+
default: ""
|
|
16
|
+
options:
|
|
17
|
+
- ""
|
|
18
|
+
- disable
|
|
19
|
+
- enable
|
|
20
|
+
- update
|
|
21
|
+
- upgrade
|
|
22
|
+
- safe_outputs
|
|
23
|
+
- create_labels
|
|
24
|
+
- activity_report
|
|
25
|
+
- close_agentic_workflows_issues
|
|
26
|
+
- clean_cache_memories
|
|
27
|
+
- update_pull_request_branches
|
|
28
|
+
- validate
|
|
29
|
+
- forecast
|
|
30
|
+
run_url:
|
|
31
|
+
description: Run URL or run ID required for safe_outputs
|
|
32
|
+
required: false
|
|
33
|
+
type: string
|
|
34
|
+
default: ""
|
|
35
|
+
workflow_call:
|
|
36
|
+
inputs:
|
|
37
|
+
operation:
|
|
38
|
+
required: false
|
|
39
|
+
type: string
|
|
40
|
+
default: ""
|
|
41
|
+
run_url:
|
|
42
|
+
required: false
|
|
43
|
+
type: string
|
|
44
|
+
default: ""
|
|
45
|
+
|
|
46
|
+
permissions: {}
|
|
47
|
+
|
|
48
|
+
jobs:
|
|
49
|
+
close-expired-discussions:
|
|
50
|
+
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
|
|
51
|
+
runs-on: agents-arc
|
|
52
|
+
permissions:
|
|
53
|
+
discussions: write
|
|
54
|
+
steps:
|
|
55
|
+
- name: Setup Scripts
|
|
56
|
+
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
57
|
+
with:
|
|
58
|
+
destination: ${{ runner.temp }}/gh-aw/actions
|
|
59
|
+
- name: Close expired discussions
|
|
60
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
61
|
+
with:
|
|
62
|
+
script: |
|
|
63
|
+
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
64
|
+
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
65
|
+
const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_discussions.cjs');
|
|
66
|
+
await main();
|
|
67
|
+
close-expired-issues:
|
|
68
|
+
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
|
|
69
|
+
runs-on: agents-arc
|
|
70
|
+
permissions:
|
|
71
|
+
issues: write
|
|
72
|
+
steps:
|
|
73
|
+
- name: Setup Scripts
|
|
74
|
+
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
75
|
+
with:
|
|
76
|
+
destination: ${{ runner.temp }}/gh-aw/actions
|
|
77
|
+
- name: Close expired issues
|
|
78
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
79
|
+
with:
|
|
80
|
+
script: |
|
|
81
|
+
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
82
|
+
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
83
|
+
const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_issues.cjs');
|
|
84
|
+
await main();
|
|
85
|
+
close-expired-pull-requests:
|
|
86
|
+
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
|
|
87
|
+
runs-on: agents-arc
|
|
88
|
+
permissions:
|
|
89
|
+
pull-requests: write
|
|
90
|
+
steps:
|
|
91
|
+
- name: Setup Scripts
|
|
92
|
+
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
93
|
+
with:
|
|
94
|
+
destination: ${{ runner.temp }}/gh-aw/actions
|
|
95
|
+
- name: Close expired pull requests
|
|
96
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
97
|
+
with:
|
|
98
|
+
script: |
|
|
99
|
+
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
100
|
+
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
101
|
+
const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_pull_requests.cjs');
|
|
102
|
+
await main();
|
|
103
|
+
cleanup-cache-memory:
|
|
104
|
+
if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '' || inputs.operation == 'clean_cache_memories') }}
|
|
105
|
+
runs-on: agents-arc
|
|
106
|
+
permissions:
|
|
107
|
+
actions: write
|
|
108
|
+
steps:
|
|
109
|
+
- name: Setup Scripts
|
|
110
|
+
uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
|
|
111
|
+
with:
|
|
112
|
+
destination: ${{ runner.temp }}/gh-aw/actions
|
|
113
|
+
- name: Cleanup outdated cache-memory entries
|
|
114
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
115
|
+
with:
|
|
116
|
+
script: |
|
|
117
|
+
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
|
|
118
|
+
setupGlobals(core, github, context, exec, io, getOctokit);
|
|
119
|
+
const { main } = require('${{ runner.temp }}/gh-aw/actions/cleanup_cache_memory.cjs');
|
|
120
|
+
await main();
|
|
121
|
+
#
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
name: Bug report
|
|
2
|
-
description: Report a defect
|
|
3
|
-
labels: ["bug"]
|
|
4
|
-
body:
|
|
5
|
-
- type: markdown
|
|
6
|
-
attributes:
|
|
7
|
-
value: |
|
|
8
|
-
Thanks for reporting. Do **not** include real secrets or production data use placeholders.
|
|
9
|
-
|
|
10
|
-
For security vulnerabilities, contact the team directly instead of filing a public issue.
|
|
11
|
-
- type: dropdown
|
|
12
|
-
id: severity
|
|
13
|
-
attributes:
|
|
14
|
-
label: Severity
|
|
15
|
-
options:
|
|
16
|
-
- Production-down / data loss
|
|
17
|
-
- Major broken core flow
|
|
18
|
-
- Minor broken edge case
|
|
19
|
-
- Cosmetic / polish
|
|
20
|
-
validations:
|
|
21
|
-
required: true
|
|
22
|
-
- type: dropdown
|
|
23
|
-
id: frequency
|
|
24
|
-
attributes:
|
|
25
|
-
label: Frequency
|
|
26
|
-
description: How often does this happen?
|
|
27
|
-
options:
|
|
28
|
-
- Always
|
|
29
|
-
- Intermittent
|
|
30
|
-
- Only once
|
|
31
|
-
validations:
|
|
32
|
-
required: true
|
|
33
|
-
- type: textarea
|
|
34
|
-
id: what-happened
|
|
35
|
-
attributes:
|
|
36
|
-
label: What happened?
|
|
37
|
-
description: A clear description of the bug and its impact.
|
|
38
|
-
validations:
|
|
39
|
-
required: true
|
|
40
|
-
- type: textarea
|
|
41
|
-
id: repro
|
|
42
|
-
attributes:
|
|
43
|
-
label: Steps to reproduce
|
|
44
|
-
description: How can a maintainer reproduce it?
|
|
45
|
-
placeholder: |
|
|
46
|
-
1. Go to ...
|
|
47
|
-
2. Do ...
|
|
48
|
-
3. See error
|
|
49
|
-
validations:
|
|
50
|
-
required: true
|
|
51
|
-
- type: textarea
|
|
52
|
-
id: expected
|
|
53
|
-
attributes:
|
|
54
|
-
label: Expected behavior
|
|
55
|
-
validations:
|
|
56
|
-
required: true
|
|
57
|
-
- type: dropdown
|
|
58
|
-
id: area
|
|
59
|
-
attributes:
|
|
60
|
-
label: Where does it occur?
|
|
61
|
-
options:
|
|
62
|
-
- Backend
|
|
63
|
-
- Frontend
|
|
64
|
-
- Both
|
|
65
|
-
- CLI / tooling
|
|
66
|
-
- Configuration / deployment
|
|
67
|
-
- Documentation
|
|
68
|
-
- Other
|
|
69
|
-
validations:
|
|
70
|
-
required: true
|
|
71
|
-
- type: textarea
|
|
72
|
-
id: acceptance
|
|
73
|
-
attributes:
|
|
74
|
-
label: Acceptance criteria
|
|
75
|
-
description: How will we know it's fixed? A checklist a reviewer can verify (include the test that should turn green).
|
|
76
|
-
placeholder: |
|
|
77
|
-
- [ ] ...
|
|
78
|
-
- [ ] A test that fails before the fix and passes after
|
|
79
|
-
validations:
|
|
80
|
-
required: false
|
|
81
|
-
- type: textarea
|
|
82
|
-
id: open-questions
|
|
83
|
-
attributes:
|
|
84
|
-
label: Open questions
|
|
85
|
-
description: Decisions a maintainer must make before this can be planned. Leave blank if none.
|
|
86
|
-
validations:
|
|
87
|
-
required: false
|
|
88
|
-
- type: textarea
|
|
89
|
-
id: environment
|
|
90
|
-
attributes:
|
|
91
|
-
label: Environment
|
|
92
|
-
description: Local vs deployed, branch/commit, OS, runtime versions if relevant.
|
|
93
|
-
validations:
|
|
94
|
-
required: false
|
|
95
|
-
- type: textarea
|
|
96
|
-
id: logs
|
|
97
|
-
attributes:
|
|
98
|
-
label: Logs / screenshots
|
|
99
|
-
description: Paste relevant logs or screenshots. Redact secrets and PII.
|
|
100
|
-
render: shell
|
|
101
|
-
validations:
|
|
102
|
-
required: false
|
|
103
|
-
- type: textarea
|
|
104
|
-
id: related
|
|
105
|
-
attributes:
|
|
106
|
-
label: Related links
|
|
107
|
-
description: Links to related issues, PRs, discussions, or docs. Leave blank if none.
|
|
108
|
-
validations:
|
|
109
|
-
required: false
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a defect
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for reporting. Do **not** include real secrets or production data use placeholders.
|
|
9
|
+
|
|
10
|
+
For security vulnerabilities, contact the team directly instead of filing a public issue.
|
|
11
|
+
- type: dropdown
|
|
12
|
+
id: severity
|
|
13
|
+
attributes:
|
|
14
|
+
label: Severity
|
|
15
|
+
options:
|
|
16
|
+
- Production-down / data loss
|
|
17
|
+
- Major broken core flow
|
|
18
|
+
- Minor broken edge case
|
|
19
|
+
- Cosmetic / polish
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
- type: dropdown
|
|
23
|
+
id: frequency
|
|
24
|
+
attributes:
|
|
25
|
+
label: Frequency
|
|
26
|
+
description: How often does this happen?
|
|
27
|
+
options:
|
|
28
|
+
- Always
|
|
29
|
+
- Intermittent
|
|
30
|
+
- Only once
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
- type: textarea
|
|
34
|
+
id: what-happened
|
|
35
|
+
attributes:
|
|
36
|
+
label: What happened?
|
|
37
|
+
description: A clear description of the bug and its impact.
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
- type: textarea
|
|
41
|
+
id: repro
|
|
42
|
+
attributes:
|
|
43
|
+
label: Steps to reproduce
|
|
44
|
+
description: How can a maintainer reproduce it?
|
|
45
|
+
placeholder: |
|
|
46
|
+
1. Go to ...
|
|
47
|
+
2. Do ...
|
|
48
|
+
3. See error
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
- type: textarea
|
|
52
|
+
id: expected
|
|
53
|
+
attributes:
|
|
54
|
+
label: Expected behavior
|
|
55
|
+
validations:
|
|
56
|
+
required: true
|
|
57
|
+
- type: dropdown
|
|
58
|
+
id: area
|
|
59
|
+
attributes:
|
|
60
|
+
label: Where does it occur?
|
|
61
|
+
options:
|
|
62
|
+
- Backend
|
|
63
|
+
- Frontend
|
|
64
|
+
- Both
|
|
65
|
+
- CLI / tooling
|
|
66
|
+
- Configuration / deployment
|
|
67
|
+
- Documentation
|
|
68
|
+
- Other
|
|
69
|
+
validations:
|
|
70
|
+
required: true
|
|
71
|
+
- type: textarea
|
|
72
|
+
id: acceptance
|
|
73
|
+
attributes:
|
|
74
|
+
label: Acceptance criteria
|
|
75
|
+
description: How will we know it's fixed? A checklist a reviewer can verify (include the test that should turn green).
|
|
76
|
+
placeholder: |
|
|
77
|
+
- [ ] ...
|
|
78
|
+
- [ ] A test that fails before the fix and passes after
|
|
79
|
+
validations:
|
|
80
|
+
required: false
|
|
81
|
+
- type: textarea
|
|
82
|
+
id: open-questions
|
|
83
|
+
attributes:
|
|
84
|
+
label: Open questions
|
|
85
|
+
description: Decisions a maintainer must make before this can be planned. Leave blank if none.
|
|
86
|
+
validations:
|
|
87
|
+
required: false
|
|
88
|
+
- type: textarea
|
|
89
|
+
id: environment
|
|
90
|
+
attributes:
|
|
91
|
+
label: Environment
|
|
92
|
+
description: Local vs deployed, branch/commit, OS, runtime versions if relevant.
|
|
93
|
+
validations:
|
|
94
|
+
required: false
|
|
95
|
+
- type: textarea
|
|
96
|
+
id: logs
|
|
97
|
+
attributes:
|
|
98
|
+
label: Logs / screenshots
|
|
99
|
+
description: Paste relevant logs or screenshots. Redact secrets and PII.
|
|
100
|
+
render: shell
|
|
101
|
+
validations:
|
|
102
|
+
required: false
|
|
103
|
+
- type: textarea
|
|
104
|
+
id: related
|
|
105
|
+
attributes:
|
|
106
|
+
label: Related links
|
|
107
|
+
description: Links to related issues, PRs, discussions, or docs. Leave blank if none.
|
|
108
|
+
validations:
|
|
109
|
+
required: false
|