Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"args": {
"DOCKER_GID": "${env:DOCKER_GID:}",
"IMAGE_NAME": "node_24_python_3_14",
"IMAGE_VERSION": "v1.2.0",
"IMAGE_VERSION": "v1.4.4",
"USER_UID": "${localEnv:USER_ID:}",
"USER_GID": "${localEnv:GROUP_ID:}"
}
Expand Down
6 changes: 6 additions & 0 deletions .gitallowed
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ token = get_bot_token\(\)
def from_token
token = os\.getenv
password: \${{secrets\.DEPENDABOT_TOKEN}}
token = result\.stdout\.strip\(\)
token = cli\.resolve_gh_auth_token\('explicit-token'\)
token = cli\.resolve_gh_auth_token\("explicit-token"\)
token = cli\._get_or_create_gh_auth_token\(\)
token = cli\._get_or_create_gh_auth_token\(\)
assert token ==
Comment on lines +45 to +46
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new allowlist entries include a duplicate regex (the _get_or_create_gh_auth_token() line is repeated) and an apparently truncated/broad pattern (assert token == ) that could unintentionally suppress secret-detection matches. Please dedupe and tighten/remove the assert token == entry (e.g., only allow a specific non-secret placeholder) so the allowlist remains as narrow as possible.

Suggested change
token = cli\._get_or_create_gh_auth_token\(\)
assert token ==
assert token == "test-token"

Copilot uses AI. Check for mistakes.
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# restrict access to approving workflow changes
.github/workflows/ @NHSDigital/eps-administrators
19 changes: 14 additions & 5 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ on:
pull_request:
branches: [main]

env:
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}

permissions: {}
jobs:
dependabot-auto-approve-and-merge:
needs: quality_checks
Expand All @@ -20,12 +18,20 @@ jobs:

get_config_values:
uses: NHSDigital/eps-common-workflows/.github/workflows/get-repo-config.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
permissions:
attestations: read
contents: read
packages: read
with:
verify_published_from_main_image: false

quality_checks:
uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks-devcontainer.yml@5ac2707dd9cd60ad127275179495b9c890d74711
uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks-devcontainer.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
needs: [get_config_values]
permissions:
contents: read
id-token: write
packages: read
with:
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
Expand All @@ -39,9 +45,12 @@ jobs:
tag_release:
needs: [get_config_values]
uses: NHSDigital/eps-common-workflows/.github/workflows/tag-release-devcontainer.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
permissions:
id-token: write
contents: write
packages: write
with:
dry_run: true
pinned_image: "${{ needs.get_config_values.outputs.pinned_image }}"
branch_name: ${{ github.event.pull_request.head.ref }}
tag_format: ${{ needs.get_config_values.outputs.tag_format }}
secrets: inherit
21 changes: 14 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,36 @@ on:
push:
branches: [main]

env:
BRANCH_NAME: ${{ github.event.ref.BRANCH_NAME }}
permissions: {}

jobs:
get_config_values:
uses: NHSDigital/eps-common-workflows/.github/workflows/get-repo-config.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
permissions:
attestations: read
contents: read
packages: read

quality_checks:
uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks-devcontainer.yml@5ac2707dd9cd60ad127275179495b9c890d74711
uses: NHSDigital/eps-common-workflows/.github/workflows/quality-checks-devcontainer.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
needs: [get_config_values]
permissions:
contents: read
id-token: write
packages: read
with:
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
tag_release:
needs: [quality_checks, get_config_values]
uses: NHSDigital/eps-common-workflows/.github/workflows/tag-release-devcontainer.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
permissions:
id-token: write
contents: write
packages: write
with:
dry_run: false
pinned_image: ${{ needs.get_config_values.outputs.pinned_image }}
branch_name: main
tag_format: ${{ needs.get_config_values.outputs.tag_format }}
secrets: inherit
permissions:
id-token: write
contents: write
1 change: 1 addition & 0 deletions .github/workflows/sync_copilot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
workflow_dispatch:
schedule:
- cron: '0 6 * * 1'
permissions: {}

jobs:
sync-copilot-instructions:
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/update_repo_status_data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ on:
workflow_dispatch:
schedule:
- cron: "0 * * * *"
permissions: {}

jobs:
get_config_values:
uses: NHSDigital/eps-common-workflows/.github/workflows/get-repo-config.yml@e798d5aee897de6f7dc387dd5623fcd9ba4c8929
permissions:
attestations: read
contents: read
packages: read

update_repo_status:
runs-on: ubuntu-22.04
Expand All @@ -26,6 +32,8 @@ jobs:
cp /home/vscode/.tool-versions "$HOME/.tool-versions"
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false

- name: make install
run: |
Expand All @@ -49,6 +57,7 @@ jobs:
- name: Checkout gh-pages
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: true
ref: gh-pages
path: gh-pages

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ coverage.xml
Gemfile.lock
coverage/
.trivy_out/
.secrets/
.sbom/
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ repos:

- repo: local
hooks:
- id: grype-scan-local
name: Grype scan local changes
entry: make
args: ["grype-scan-local"]
language: system
pass_filenames: false
always_run: true
- id: check-commit-signing
name: Check commit signing
description: Ensures that commits are GPG signed
Expand Down
9 changes: 9 additions & 0 deletions zizmor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
rules:
unpinned-images:
# these workflows use unpinned images because they are using a full image passed in that contains the tag
ignore:
- update_repo_status_data.yml:21:7
secrets-outside-env:
# these are ignored because they are using known secrets
ignore:
- update_repo_status_data.yml:46:28