Skip to content

Commit da36b2b

Browse files
Removed ACTIONS_ALLOW_UNSECURE_COMMANDS declaration.
1 parent f7362ca commit da36b2b

1 file changed

Lines changed: 40 additions & 10 deletions

File tree

.github/workflows/pr-lint.yaml

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,63 @@
11
name: PR Quality Check
22
defaults:
33
run:
4-
shell: bash # Explicitly sets pipeline to fail if any subprocess fails
4+
shell: bash
55
on: pull_request
6+
67
jobs:
78
link-ticket:
89
runs-on: ubuntu-latest
910
steps:
11+
# 1) Validate the branch name without using shell (no user input in `run`)
1012
- name: Check ticket name conforms to requirements
11-
run: echo ${{ github.event.pull_request.head.ref }} | grep -i -E -q "(apm-[0-9]+)|(amb-[0-9]+)|(dependabot\/)"
13+
id: validate-branch
14+
uses: actions/github-script@v7
15+
with:
16+
script: |
17+
const ref = context.payload.pull_request?.head?.ref || '';
18+
const ok = /(apm-\d+)|(amb-\d+)|(dependabot\/)/i.test(ref);
19+
if (!ok) {
20+
core.setFailed(`Branch name "${ref}" must match /(apm-[0-9]+)|(amb-[0-9]+)|(dependabot\\/)/i`);
21+
}
1222
23+
# 2) Extract the ticket name safely and expose it as an output
1324
- name: Grab ticket name
14-
if: contains(github.event.pull_request.head.ref, 'apm-') || contains(github.event.pull_request.head.ref, 'APM-') || contains(github.event.pull_request.head.ref, 'amb-') || contains(github.event.pull_request.head.ref, 'AMB-')
15-
run: echo ::set-env name=TICKET_NAME::$(echo ${{ github.event.pull_request.head.ref }} | grep -i -o '\(apm-[0-9]\+\)\|\(amb-[0-9]\+\)' | tr '[:lower:]' '[:upper:]')
16-
env:
17-
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
25+
id: ticket
26+
if: contains(github.event.pull_request.head.ref, 'apm-') ||
27+
contains(github.event.pull_request.head.ref, 'APM-') ||
28+
contains(github.event.pull_request.head.ref, 'amb-') ||
29+
contains(github.event.pull_request.head.ref, 'AMB-')
30+
uses: actions/github-script@v7
31+
with:
32+
result-encoding: string
33+
script: |
34+
const ref = context.payload.pull_request?.head?.ref || '';
35+
const m = ref.match(/(apm-\d+)|(amb-\d+)/i);
36+
return m ? m[0].toUpperCase() : '';
1837
38+
# 3) Comment with link to JIRA ticket, using the safe output (no env mutation)
1939
- name: Comment on PR with link to JIRA ticket
20-
if: contains(github.event.pull_request.head.ref, 'apm-') || contains(github.event.pull_request.head.ref, 'APM-') || contains(github.event.pull_request.head.ref, 'amb-') || contains(github.event.pull_request.head.ref, 'AMB-')
40+
if: (contains(github.event.pull_request.head.ref, 'apm-') ||
41+
contains(github.event.pull_request.head.ref, 'APM-') ||
42+
contains(github.event.pull_request.head.ref, 'amb-') ||
43+
contains(github.event.pull_request.head.ref, 'AMB-')) &&
44+
steps.ticket.outputs.result != ''
2145
uses: unsplash/comment-on-pr@master
2246
env:
2347
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2448
with:
2549
msg: |
2650
This branch is work on a ticket in the NHS Digital AMB JIRA Project. Here's a handy link to the ticket:
27-
# [${{ env.TICKET_NAME }}](https://nhsd-jira.digital.nhs.uk/browse/${{ env.TICKET_NAME}})
28-
51+
# [${{ steps.ticket.outputs.result }}](https://nhsd-jira.digital.nhs.uk/browse/${{ steps.ticket.outputs.result }})
52+
53+
# 4) Comment with link to Spec (pure expression usage is fine)
2954
- name: Comment on PR with link to Spec
30-
if: contains(github.event.pull_request.head.ref, 'apm-') || contains(github.event.pull_request.head.ref, 'APM-') || contains(github.event.pull_request.head.ref, 'apmspii-') || contains(github.event.pull_request.head.ref, 'APMSPII-') || contains(github.event.pull_request.head.ref, 'adz-') || contains(github.event.pull_request.head.ref, 'ADZ-')
55+
if: contains(github.event.pull_request.head.ref, 'apm-') ||
56+
contains(github.event.pull_request.head.ref, 'APM-') ||
57+
contains(github.event.pull_request.head.ref, 'apmspii-') ||
58+
contains(github.event.pull_request.head.ref, 'APMSPII-') ||
59+
contains(github.event.pull_request.head.ref, 'adz-') ||
60+
contains(github.event.pull_request.head.ref, 'ADZ-')
3161
uses: unsplash/comment-on-pr@master
3262
env:
3363
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)