diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6a7695c0..937d1ff5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,11 @@ updates: directory: "/" schedule: interval: "weekly" + cooldown: + default-days: 7 + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + cooldown: + default-days: 7 diff --git a/.github/workflows/bandit.yaml b/.github/workflows/bandit.yaml index acd0252b..8a71bda7 100644 --- a/.github/workflows/bandit.yaml +++ b/.github/workflows/bandit.yaml @@ -23,7 +23,7 @@ jobs: actions: read contents: read steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Run Bandit uses: PyCQA/bandit-action@67a458d90fa11fb1463e91e7f4c8f068b5863c7f # v1.0.1 with: diff --git a/.github/workflows/coverage-generate.yaml b/.github/workflows/coverage-generate.yaml index 31e5ed6d..dc7701a7 100644 --- a/.github/workflows/coverage-generate.yaml +++ b/.github/workflows/coverage-generate.yaml @@ -7,6 +7,10 @@ on: branches: - "main" +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + permissions: contents: read @@ -23,13 +27,15 @@ jobs: # comments (to avoid publishing multiple comments in the same PR) contents: write steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.11" + cache: "pip" + cache-dependency-path: "pyproject.toml" - name: Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: 24 - name: Install dependencies @@ -46,21 +52,21 @@ jobs: rustup component add clippy - name: Install package run: | + pip install --upgrade pip pip install -e .[dev] - name: Generate coverage report run: | pytest -v - name: Coverage comment id: coverage_comment - uses: py-cov-action/python-coverage-comment-action@2b84cfb222691291ba358a586c13606f0a9c172c # v3 + uses: py-cov-action/python-coverage-comment-action@a05be3d2e8a6272d3ef5fb2840ab20368bb2eb71 # v4.3 with: GITHUB_TOKEN: ${{ github.token }} - name: Store Pull Request comment to be posted - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true' with: # If you use a different name, update COMMENT_ARTIFACT_NAME accordingly name: python-coverage-comment-action # If you use a different name, update COMMENT_FILENAME accordingly path: python-coverage-comment-action.txt - diff --git a/.github/workflows/coverage-report.yaml b/.github/workflows/coverage-report.yaml index 4e1f2294..ffe9d621 100644 --- a/.github/workflows/coverage-report.yaml +++ b/.github/workflows/coverage-report.yaml @@ -30,7 +30,7 @@ jobs: # DO NOT run actions/checkout here, for security reasons # For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ - name: Post comment - uses: py-cov-action/python-coverage-comment-action@2b84cfb222691291ba358a586c13606f0a9c172c # v3 + uses: py-cov-action/python-coverage-comment-action@a05be3d2e8a6272d3ef5fb2840ab20368bb2eb71 # v4.3 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }} diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 28473fe5..5bf4ab28 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -35,7 +35,7 @@ jobs: - name: Embed SBOM into the wheel id: pitloom - uses: bact/pitloom@4842922f65fb7ed1c5e51507c0fb253c62d97960 # v0.16.2 + uses: bact/pitloom@68b02e2052902012716c6b888addbaf95d5e1bf5 # v0.17.0 with: embed-wheel: "dist/*.whl" extras: "content-type" @@ -68,4 +68,4 @@ jobs: spdx3-validate --json "extracted-sbom/${sbom_basename}" - name: Publish distribution to PyPI - uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # release/v1 + uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 4d9b09ab..5c993f67 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,12 +32,12 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 + uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4 with: results_file: results.sarif results_format: sarif diff --git a/.github/workflows/test-sbom.yaml b/.github/workflows/test-sbom.yaml index 6e23d8a9..ca0c824e 100644 --- a/.github/workflows/test-sbom.yaml +++ b/.github/workflows/test-sbom.yaml @@ -40,7 +40,7 @@ jobs: - name: Embed SBOM into the wheel id: pitloom - uses: bact/pitloom@4842922f65fb7ed1c5e51507c0fb253c62d97960 # v0.16.2 + uses: bact/pitloom@68b02e2052902012716c6b888addbaf95d5e1bf5 # v0.17.0 with: embed-wheel: "dist/*.whl" extras: "content-type" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 309b6142..1d0c647e 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -32,14 +32,14 @@ jobs: - os: macos-latest python-version: "3.10" steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} cache: pip - name: Setup Node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: 24 cache: npm @@ -83,9 +83,9 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Python - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: # Black in this Python version must support all target-versions listed in pyproject.toml python-version: "3.14"