From a87695da59ec02bffedf1fea13fbc70303589eb8 Mon Sep 17 00:00:00 2001 From: Patrick Kaeding Date: Wed, 25 Mar 2026 13:03:42 -0400 Subject: [PATCH 1/3] [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 9b35bb2..4796564 100644 --- a/.github/workflows/manual-publish.yml +++ b/.github/workflows/manual-publish.yml @@ -24,7 +24,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' @@ -37,7 +37,7 @@ 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 a7fc2f1..140c763 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -16,7 +16,7 @@ jobs: upload-tag-name: ${{ steps.release.outputs.tag_name }} package-hashes: ${{ steps.build.outputs.package-hashes}} steps: - - uses: googleapis/release-please-action@v4 + - uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4 id: release - uses: actions/checkout@v4 @@ -31,7 +31,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 if: ${{ steps.release.outputs.releases_created == 'true' }} @@ -49,7 +49,7 @@ 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 1a91bec2babb312c49725bc51d05cc06b837308e Mon Sep 17 00:00:00 2001 From: Patrick Kaeding Date: Thu, 2 Apr 2026 11:24:13 -0400 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Patrick Kaeding --- .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 4796564..3423d2d 100644 --- a/.github/workflows/manual-publish.yml +++ b/.github/workflows/manual-publish.yml @@ -24,7 +24,7 @@ jobs: python-version: 3.9 - name: Install poetry - uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # 7b6d33e44b4f08d7021a1dee3c044e9c253d6439 + uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 - 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 140c763..9718015 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -31,7 +31,7 @@ jobs: - name: Install poetry if: ${{ steps.release.outputs.releases_created == 'true' }} - uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 # 7b6d33e44b4f08d7021a1dee3c044e9c253d6439 + uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 if: ${{ steps.release.outputs.releases_created == 'true' }} From ec074f9b5e79c73e5fdffdf07ede52dbb912cd82 Mon Sep 17 00:00:00 2001 From: "Matthew M. Keeler" Date: Thu, 9 Apr 2026 11:42:34 -0400 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Matthew M. Keeler --- .github/workflows/manual-publish.yml | 2 +- .github/workflows/release-please.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/manual-publish.yml b/.github/workflows/manual-publish.yml index 3423d2d..87fabde 100644 --- a/.github/workflows/manual-publish.yml +++ b/.github/workflows/manual-publish.yml @@ -37,7 +37,7 @@ jobs: - name: Publish package distributions to PyPI if: ${{ inputs.dry_run == false }} - uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1 + uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0 with: password: ${{env.PYPI_AUTH_TOKEN}} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 9718015..62757a6 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -16,7 +16,7 @@ jobs: upload-tag-name: ${{ steps.release.outputs.tag_name }} package-hashes: ${{ steps.build.outputs.package-hashes}} steps: - - uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4 + - uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0 id: release - uses: actions/checkout@v4 @@ -49,7 +49,7 @@ jobs: - name: Publish package distributions to PyPI if: ${{ steps.release.outputs.releases_created == 'true' }} - uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1 + uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0 with: password: ${{env.PYPI_AUTH_TOKEN}}