diff --git a/.github/actions/update-charm-pins/action.yaml b/.github/actions/update-charm-pins/action.yaml index a49220a07..c69d4125f 100644 --- a/.github/actions/update-charm-pins/action.yaml +++ b/.github/actions/update-charm-pins/action.yaml @@ -17,7 +17,7 @@ inputs: runs: using: composite steps: - - uses: actions/setup-python@v5 + - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: "3.12" diff --git a/.github/workflows/_build-wheels.yaml b/.github/workflows/_build-wheels.yaml index 2072fac91..b40735bc3 100644 --- a/.github/workflows/_build-wheels.yaml +++ b/.github/workflows/_build-wheels.yaml @@ -16,7 +16,7 @@ jobs: artifact-name: ${{ steps.artifact-name.outputs.name }} steps: - name: Checkout the operator repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false @@ -31,7 +31,7 @@ jobs: run: echo "name=operator-wheels-${{ github.sha }}" >> "$GITHUB_OUTPUT" - name: Upload wheels as artifact - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: ${{ steps.artifact-name.outputs.name }} path: dist/*.whl diff --git a/.github/workflows/charmcraft-pack.yaml b/.github/workflows/charmcraft-pack.yaml index 224440af5..c47c93635 100644 --- a/.github/workflows/charmcraft-pack.yaml +++ b/.github/workflows/charmcraft-pack.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false @@ -67,7 +67,7 @@ jobs: - name: Archive charmcraft logs if: failure() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: charmcraft-logs path: /root/.local/state/charmcraft/log/*.log diff --git a/.github/workflows/db-charm-tests.yaml b/.github/workflows/db-charm-tests.yaml index db6b9a4d8..1bd6da8cc 100644 --- a/.github/workflows/db-charm-tests.yaml +++ b/.github/workflows/db-charm-tests.yaml @@ -31,14 +31,14 @@ jobs: commit: 0088c9583f63999ff37d982948e47b9e3e3fba2a # 2026-01-20T15:48:23Z steps: - name: Checkout the ${{ matrix.charm-repo }} repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: repository: ${{ matrix.charm-repo }} persist-credentials: false ref: ${{ matrix.commit }} - name: Download operator wheels - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: ${{ needs.build-wheels.outputs.artifact-name }} path: operator-wheels diff --git a/.github/workflows/dependency-review.yaml b/.github/workflows/dependency-review.yaml index 7a79ecf61..ec256e868 100644 --- a/.github/workflows/dependency-review.yaml +++ b/.github/workflows/dependency-review.yaml @@ -15,10 +15,10 @@ jobs: contents: read steps: - name: Checkout repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Dependency review - uses: actions/dependency-review-action@v5 + uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5 with: fail-on-severity: high diff --git a/.github/workflows/docs-linkcheck.yaml b/.github/workflows/docs-linkcheck.yaml index 8dde256cf..8d915df3d 100644 --- a/.github/workflows/docs-linkcheck.yaml +++ b/.github/workflows/docs-linkcheck.yaml @@ -15,7 +15,7 @@ jobs: name: Links runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up uv diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 215accd81..784c4ceeb 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -15,7 +15,7 @@ jobs: name: Spelling runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up uv diff --git a/.github/workflows/example-charm-charmcraft-test.yaml b/.github/workflows/example-charm-charmcraft-test.yaml index 749ce14cf..4be98d474 100644 --- a/.github/workflows/example-charm-charmcraft-test.yaml +++ b/.github/workflows/example-charm-charmcraft-test.yaml @@ -16,7 +16,7 @@ jobs: outputs: jobs: ${{ steps.collect.outputs.jobs }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Collect spread jobs @@ -39,7 +39,7 @@ jobs: matrix: include: ${{ fromJson(needs.collect-spread-jobs.outputs.jobs) }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up LXD diff --git a/.github/workflows/example-charm-integration-tests.yaml b/.github/workflows/example-charm-integration-tests.yaml index c73d5b678..74e57fb00 100644 --- a/.github/workflows/example-charm-integration-tests.yaml +++ b/.github/workflows/example-charm-integration-tests.yaml @@ -17,7 +17,7 @@ jobs: dir: - examples/machine-tinyproxy steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up uv @@ -51,7 +51,7 @@ jobs: - examples/k8s-4-action - examples/k8s-5-observe steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up uv diff --git a/.github/workflows/example-charm-tests.yaml b/.github/workflows/example-charm-tests.yaml index e6954f69d..a00129b41 100644 --- a/.github/workflows/example-charm-tests.yaml +++ b/.github/workflows/example-charm-tests.yaml @@ -28,11 +28,11 @@ jobs: - examples/k8s-5-observe steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Set up Python 3 - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: '${{ matrix.python-version }}' - name: Set up uv diff --git a/.github/workflows/framework-tests.yaml b/.github/workflows/framework-tests.yaml index b9b2c0cce..21f617b29 100644 --- a/.github/workflows/framework-tests.yaml +++ b/.github/workflows/framework-tests.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 @@ -36,7 +36,7 @@ jobs: python-version: ["3.10", "3.12", "3.14"] steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 @@ -59,7 +59,7 @@ jobs: python-version: ["3.10", "3.12", "3.14"] steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 @@ -67,7 +67,7 @@ jobs: - run: uv python install ${{ matrix.python-version }} - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6 with: go-version: "1.22" # To suppress the "Restore cache failed" error, since there is no go.sum file here. @@ -93,12 +93,12 @@ jobs: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 - name: Set up Python 3 - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/hello-charm-tests.yaml b/.github/workflows/hello-charm-tests.yaml index 00958e194..91c2450c3 100644 --- a/.github/workflows/hello-charm-tests.yaml +++ b/.github/workflows/hello-charm-tests.yaml @@ -27,19 +27,19 @@ jobs: commit: 046b8ce758660d5aa9cf05207e2370fcbab688d0 # 2021-12-16T10:10:24Z steps: - name: Set up Python 3.10 - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: '3.10' - name: Checkout the ${{ matrix.charm-repo }} repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: repository: ${{ matrix.charm-repo }} persist-credentials: false ref: ${{ matrix.commit }} - name: Download operator wheels - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: ${{ needs.build-wheels.outputs.artifact-name }} path: operator-wheels diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index 8c4e257de..54c42ed1a 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -13,7 +13,7 @@ jobs: outputs: tests: ${{ steps.tests.outputs.result }} steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 @@ -50,7 +50,7 @@ jobs: test: test/integration/test_tracing.py steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - run: sudo snap install --classic concierge diff --git a/.github/workflows/observability-charm-tests.yaml b/.github/workflows/observability-charm-tests.yaml index 6755a5e68..1cb736f8d 100644 --- a/.github/workflows/observability-charm-tests.yaml +++ b/.github/workflows/observability-charm-tests.yaml @@ -30,14 +30,14 @@ jobs: commit: f3999254035d5f39eda07261af2b86a4454846d4 # 2026-05-20T14:52:38Z steps: - name: Checkout the ${{ matrix.charm-repo }} repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: repository: ${{ matrix.charm-repo }} persist-credentials: false ref: ${{ matrix.commit }} - name: Download operator wheels - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: ${{ needs.build-wheels.outputs.artifact-name }} path: operator-wheels diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 883e3a5f4..4bf6b31b6 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -17,7 +17,7 @@ jobs: contents: read environment: publish-pypi steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 @@ -28,10 +28,10 @@ jobs: run: | set -xueo pipefail uvx --with "$(echo -n dist/ops-*.whl)[testing,tracing]" --with dist/ops_scenario-*.whl --with dist/ops_tracing-*.whl python -c 'import ops, scenario, ops_tracing; print("OK")' - - uses: actions/attest-build-provenance@v4.1.0 + - uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0 with: subject-path: 'dist/*' - - uses: pypa/gh-action-pypi-publish@release/v1 + - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1 secscan: uses: ./.github/workflows/sbom-secscan.yaml diff --git a/.github/workflows/published-charms-tests.yaml b/.github/workflows/published-charms-tests.yaml index 60b5283d5..355ab556a 100644 --- a/.github/workflows/published-charms-tests.yaml +++ b/.github/workflows/published-charms-tests.yaml @@ -191,7 +191,7 @@ jobs: # END AUTOGENERATED CONTENT steps: - name: Checkout operator repository (for helper scripts) - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: path: operator-repo persist-credentials: false @@ -203,14 +203,14 @@ jobs: rm -rf operator-repo - name: Checkout the ${{ matrix.charm-repo }} repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: repository: ${{ matrix.charm-repo }} path: charm-repo persist-credentials: false - name: Download operator wheels - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: ${{ needs.build-wheels.outputs.artifact-name }} path: operator-wheels @@ -289,7 +289,7 @@ jobs: run: charmcraft init --profile=${{ matrix.profile }} --author=charm-tech - name: Download operator wheels - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: ${{ needs.build-wheels.outputs.artifact-name }} path: operator-wheels diff --git a/.github/workflows/sbom-secscan.yaml b/.github/workflows/sbom-secscan.yaml index 3b2a239b9..9c063a06b 100644 --- a/.github/workflows/sbom-secscan.yaml +++ b/.github/workflows/sbom-secscan.yaml @@ -17,7 +17,7 @@ jobs: runs-on: [self-hosted, self-hosted-linux-amd64-jammy-private-endpoint-medium] steps: - name: Checkout repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - name: Install dependencies @@ -26,7 +26,7 @@ jobs: sudo apt-get install -y libapt-pkg-dev sudo apt install -y python3-apt - name: Checkout security scanner - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: repository: canonical/sbomber path: scanner @@ -53,7 +53,7 @@ jobs: run: | cd scanner && ./sbomber download - name: Upload reports - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: secscan-report-upload-${{ matrix.manifest }} path: ./scanner/reports/ diff --git a/.github/workflows/smoke.yaml b/.github/workflows/smoke.yaml index 744819747..df303fbaf 100644 --- a/.github/workflows/smoke.yaml +++ b/.github/workflows/smoke.yaml @@ -26,7 +26,7 @@ jobs: --charmcraft-channel=3.x/stable -p "${{ matrix.preset }}" - name: Checkout the repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false @@ -40,7 +40,7 @@ jobs: - name: Archive charmcraft logs if: failure() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: charmcraft-logs path: /home/runner/.local/state/charmcraft/log/*.log diff --git a/.github/workflows/test-publish.yaml b/.github/workflows/test-publish.yaml index 328da1916..ec688e67d 100644 --- a/.github/workflows/test-publish.yaml +++ b/.github/workflows/test-publish.yaml @@ -12,13 +12,13 @@ jobs: name: Build and publish to Test PYPI runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 with: enable-cache: false - run: uv build --all - - uses: pypa/gh-action-pypi-publish@release/v1 + - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1 with: repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/tiobe.yaml b/.github/workflows/tiobe.yaml index 2f06b4704..bb227055d 100644 --- a/.github/workflows/tiobe.yaml +++ b/.github/workflows/tiobe.yaml @@ -11,7 +11,7 @@ jobs: TICS: runs-on: [self-hosted, reactive, amd64, tiobe, noble] steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false diff --git a/.github/workflows/update-best-practice-doc.yaml b/.github/workflows/update-best-practice-doc.yaml index 0d00bc290..01213ac2a 100644 --- a/.github/workflows/update-best-practice-doc.yaml +++ b/.github/workflows/update-best-practice-doc.yaml @@ -11,19 +11,19 @@ jobs: update-docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: token: ${{ secrets.UPDATE_DOCS_ACCESS_TOKEN }} path: operator persist-credentials: true - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: repository: canonical/charmcraft path: charmcraft persist-credentials: false - - uses: actions/setup-python@v6 + - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: "3.12" - run: python .github/update-best-practice-table.py --path-to-charmcraft='${{ github.workspace }}/charmcraft' > docs/reuse/best-practices.txt diff --git a/.github/workflows/update-charm-tests.yaml b/.github/workflows/update-charm-tests.yaml index 76c2645a6..d06efa5f1 100644 --- a/.github/workflows/update-charm-tests.yaml +++ b/.github/workflows/update-charm-tests.yaml @@ -13,7 +13,7 @@ jobs: update-pins: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: token: ${{ secrets.UPDATE_CHARM_PINS_ACCESS_TOKEN }} persist-credentials: true diff --git a/.github/workflows/validate-pr-title.yaml b/.github/workflows/validate-pr-title.yaml index 1899bfba6..119d6a2b0 100644 --- a/.github/workflows/validate-pr-title.yaml +++ b/.github/workflows/validate-pr-title.yaml @@ -13,7 +13,7 @@ jobs: name: Validate PR title runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false - run: python3 .github/check-conventional-pr-title.py diff --git a/.github/workflows/zizmor.yaml b/.github/workflows/zizmor.yaml index 53d1ce19e..a8e2a2547 100644 --- a/.github/workflows/zizmor.yaml +++ b/.github/workflows/zizmor.yaml @@ -16,7 +16,7 @@ jobs: security-events: write steps: - name: Checkout repository - uses: actions/checkout@v7 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: persist-credentials: false @@ -29,7 +29,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@v4.36.2 + uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 with: sarif_file: results.sarif category: zizmor diff --git a/.github/zizmor.yaml b/.github/zizmor.yaml deleted file mode 100644 index 5b5b5e749..000000000 --- a/.github/zizmor.yaml +++ /dev/null @@ -1,7 +0,0 @@ -rules: - unpinned-uses: - config: - policies: - "actions/*": ref-pin - "github/*": ref-pin - "pypa/*": ref-pin