@@ -10,28 +10,48 @@ inputs:
1010 description : ' Label indicating the PR has been robot-tested'
1111 required : false
1212 default : ' test-robot-done'
13+ token :
14+ description : ' GitHub token or PAT used to post comments (defaults to github.token)'
15+ required : false
16+ default : ' '
1317
1418runs :
1519 using : " composite"
1620 steps :
1721 - name : Check robot test labels
1822 uses : actions/github-script@v7
1923 with :
24+ github-token : ${{ inputs.token || github.token }}
2025 script : |
2126 const labelNeeded = '${{ inputs.label-test-robot-needed }}';
2227 const labelDone = '${{ inputs.label-test-robot-done }}';
2328 const pr = context.payload.pull_request.number;
29+ const sha = context.payload.pull_request.head.sha;
2430
2531 const { data: currentLabels } = await github.rest.issues.listLabelsOnIssue({
2632 ...context.repo,
2733 issue_number: pr,
2834 });
2935 const labelNames = new Set(currentLabels.map(l => l.name));
3036
31- if (labelNames.has(labelNeeded) && !labelNames.has(labelDone)) {
32- core.setFailed(
33- `PR requires robot testing but is missing the expected label.\n` +
34- ` Expected label : \`${labelDone}\`\n` +
35- ` Reason : \`${labelNeeded}\` is present — robot testing must be completed and the PR marked with \`${labelDone}\` before merging.`
36- );
37+ if (!labelNames.has(labelNeeded)) {
38+ core.info(`\`${labelNeeded}\` not present — no robot testing required.`);
39+ return;
40+ }
41+
42+ if (labelNames.has(labelDone)) {
43+ core.info(`\`${labelDone}\` present — robot testing confirmed.`);
44+ return;
3745 }
46+
47+ const shaLine = sha ? `\n\n**Commit:** \`${sha}\`` : '';
48+ await github.rest.issues.createComment({
49+ ...context.repo,
50+ issue_number: pr,
51+ body:
52+ `### ❌ Robot Testing Required\n\n` +
53+ `\`${labelNeeded}\` is present but \`${labelDone}\` has not been added — this PR cannot be merged until robot testing is complete.${shaLine}\n\n` +
54+ `> [!IMPORTANT]\n` +
55+ `> Add \`${labelDone}\` once robot testing is complete.`,
56+ });
57+ core.setFailed(`\`${labelNeeded}\` is present but \`${labelDone}\` has not been added — robot testing must be completed before merging.`);
0 commit comments