diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 6752663..57cf1a7 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -17,10 +17,10 @@ jobs: name: Lint Backend runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version-file: 'services/backend/pyproject.toml' cache: "pip" @@ -44,7 +44,7 @@ jobs: runs-on: ubuntu-latest services: postgres: - image: postgres:16-alpine + image: postgres:16-alpine@sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777 env: # In production, use GitHub Secrets for database credentials POSTGRES_DB: appdb @@ -59,10 +59,10 @@ jobs: - 5432:5432 steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version-file: 'services/backend/pyproject.toml' cache: "pip" diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index a0c60fa..11e2a69 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -20,21 +20,21 @@ jobs: name: Git hooks (prek) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 # Same tool and config as local `prek run --all-files` / `make lint-infra` - name: Run prek - uses: j178/prek-action@v1 + uses: j178/prek-action@0bb87d7f00b0c99306c8bcb8b8beba1eb581c037 # v1 commitlint: name: PR title (Conventional Commits) if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Set up Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: node-version-file: services/frontend/.nvmrc @@ -55,12 +55,12 @@ jobs: if: github.event_name != 'pull_request' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: # the whole point: scan every commit, not the checkout fetch-depth: 0 - name: Run gitleaks over history - uses: gitleaks/gitleaks-action@v3 + uses: gitleaks/gitleaks-action@e0c47f4f8be36e29cdc102c57e68cb5cbf0e8d1e # v3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 96cc83f..a2fd8fc 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -17,10 +17,10 @@ jobs: name: Lint Frontend runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Set up Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: node-version-file: services/frontend/.nvmrc cache: "npm" @@ -39,10 +39,10 @@ jobs: name: Test Frontend runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Set up Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: node-version-file: services/frontend/.nvmrc cache: "npm" diff --git a/.github/workflows/images.yml b/.github/workflows/images.yml index 28c6a81..3d6b1ab 100644 --- a/.github/workflows/images.yml +++ b/.github/workflows/images.yml @@ -29,14 +29,14 @@ jobs: matrix: service: [backend, frontend] steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Build image run: | docker build -t devops-demo-${{ matrix.service }}:ci services/${{ matrix.service }} - name: Trivy scan (fail on critical) - uses: aquasecurity/trivy-action@v0.36.0 + uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0 with: image-ref: devops-demo-${{ matrix.service }}:ci format: table diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 14fac0f..ac5245a 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -19,7 +19,7 @@ jobs: name: Release Please runs-on: ubuntu-latest steps: - - uses: googleapis/release-please-action@v4 + - uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4 with: # PAT (if configured) lets CI run on the release PR; # the default GITHUB_TOKEN does not trigger workflows. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4d1de24..97924b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: name: Release Placeholder runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Get release version id: get_version diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index 931015c..2770927 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 - name: Run Renovate - uses: renovatebot/github-action@b50d2ba2bd928235abdcc14d06dfafc217f1c565 # v46.1.18 + uses: renovatebot/github-action@22e0a16091fc706b04affe6ae53d5e3358ac4023 # v46.1.19 with: token: ${{ secrets.PR_PAT_TOKEN }} env: