From 70a7d1fe0e4d5ff3e4a80cd669d68a0668886b79 Mon Sep 17 00:00:00 2001 From: Patrick Kaeding Date: Mon, 23 Mar 2026 12:07:44 -0400 Subject: [PATCH 1/2] [SEC-7924] chore: pin third-party GitHub Actions to commit SHAs Pin all third-party GitHub Actions to full-length commit SHAs to prevent supply chain attacks. Addresses findings from the third-party-action-not-pinned-to-commit-sha Semgrep rule. --- .github/workflows/manual-publish.yml | 4 ++-- .github/workflows/release-please.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/manual-publish.yml b/.github/workflows/manual-publish.yml index a07cc1f..871a5a7 100644 --- a/.github/workflows/manual-publish.yml +++ b/.github/workflows/manual-publish.yml @@ -22,7 +22,7 @@ jobs: python-version: 3.9 - name: Install poetry - uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 + uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # 7b6d33e44b4f08d7021a1dee3c044e9c253d6439 - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 name: "Get PyPI token" @@ -34,6 +34,6 @@ jobs: - name: Publish package distributions to PyPI if: ${{ inputs.dry_run == false }} - uses: pypa/gh-action-pypi-publish@release/v1 + uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1 with: password: ${{env.PYPI_AUTH_TOKEN}} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 7cf815d..b64eec9 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -13,7 +13,7 @@ jobs: contents: write # Contents and pull-requests are for release-please to make releases. pull-requests: write steps: - - uses: googleapis/release-please-action@v4 + - uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4 id: release - uses: actions/checkout@v4 @@ -28,7 +28,7 @@ jobs: - name: Install poetry if: ${{ steps.release.outputs.releases_created == 'true' }} - uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 + uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # 7b6d33e44b4f08d7021a1dee3c044e9c253d6439 - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 name: "Get PyPI token" @@ -45,6 +45,6 @@ jobs: - name: Publish package distributions to PyPI if: ${{ steps.release.outputs.releases_created == 'true' }} - uses: pypa/gh-action-pypi-publish@release/v1 + uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1 with: password: ${{env.PYPI_AUTH_TOKEN}} From e4ae025ec7abd32a920400fb4d75217f119bcfd4 Mon Sep 17 00:00:00 2001 From: "Matthew M. Keeler" Date: Mon, 23 Mar 2026 13:29:11 -0400 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Matthew M. Keeler --- .github/workflows/manual-publish.yml | 2 +- .github/workflows/release-please.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/manual-publish.yml b/.github/workflows/manual-publish.yml index 871a5a7..39a2c09 100644 --- a/.github/workflows/manual-publish.yml +++ b/.github/workflows/manual-publish.yml @@ -22,7 +22,7 @@ jobs: python-version: 3.9 - name: Install poetry - uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # 7b6d33e44b4f08d7021a1dee3c044e9c253d6439 + uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # v3.0.0 - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 name: "Get PyPI token" diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index b64eec9..355f73a 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -28,7 +28,7 @@ jobs: - name: Install poetry if: ${{ steps.release.outputs.releases_created == 'true' }} - uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # 7b6d33e44b4f08d7021a1dee3c044e9c253d6439 + uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # v3.0.0 - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 name: "Get PyPI token"