diff --git a/.github/workflows/code_health.yml b/.github/workflows/code_health.yml index 9365137c..c1bbe13d 100644 --- a/.github/workflows/code_health.yml +++ b/.github/workflows/code_health.yml @@ -4,6 +4,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + on: pull_request: paths-ignore: @@ -20,12 +23,14 @@ jobs: analyze: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.2 - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 with: channel: "stable" cache: true - - uses: bluefireteam/melos-action@v3 + - uses: bluefireteam/melos-action@2982f8e4fc92440a219490009d6d05195cb1a6a5 # v3 with: melos-version: "^7.5.0" - name: "Run Analyze" @@ -34,12 +39,14 @@ jobs: pub_dry_run: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.2 - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 with: channel: "stable" cache: true - - uses: bluefireteam/melos-action@v3 + - uses: bluefireteam/melos-action@2982f8e4fc92440a219490009d6d05195cb1a6a5 # v3 with: melos-version: "^7.5.0" - name: "Pub Check" @@ -50,12 +57,14 @@ jobs: pub_get_check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.2 - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 with: channel: "stable" cache: true - - uses: bluefireteam/melos-action@v3 + - uses: bluefireteam/melos-action@2982f8e4fc92440a219490009d6d05195cb1a6a5 # v3 with: melos-version: "^7.5.0" - name: "flutter pub get" @@ -67,15 +76,17 @@ jobs: # switch back to ubuntu-latest when swiftformat is working again runs-on: macos-latest steps: - - uses: actions/checkout@v6.0.2 - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 with: channel: "stable" cache: true - - uses: bluefireteam/melos-action@v3 + - uses: bluefireteam/melos-action@2982f8e4fc92440a219490009d6d05195cb1a6a5 # v3 with: melos-version: "^7.5.0" - - uses: Homebrew/actions/setup-homebrew@master + - uses: Homebrew/actions/setup-homebrew@097625b28a26ba4b7437926ab03b4d3bd2e6c3d1 # master - name: "Install Tools" run: | flutter pub global activate flutter_plugin_tools @@ -100,17 +111,19 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 steps: - - uses: actions/checkout@v6.0.2 - - uses: actions/setup-go@v5 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5 with: go-version: "^1.13.1" - run: go install github.com/google/addlicense@latest - - uses: subosito/flutter-action@v2 + - uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 with: channel: "stable" cache: true - name: Install Melos - uses: bluefireteam/melos-action@v3 + uses: bluefireteam/melos-action@2982f8e4fc92440a219490009d6d05195cb1a6a5 # v3 with: run-bootstrap: false melos-version: "^7.5.0" diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 828dbf6c..da959847 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -4,6 +4,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + on: pull_request: paths-ignore: @@ -29,6 +32,8 @@ jobs: timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + with: + persist-credentials: false - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f name: Install Node.js with: @@ -43,9 +48,9 @@ jobs: sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - name: Gradle cache - uses: gradle/actions/setup-gradle@v6 + uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6 - name: AVD cache - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 id: avd-cache with: path: | @@ -59,7 +64,7 @@ jobs: - name: "Install Tools" run: sudo npm i -g firebase-tools - name: Firebase Emulator Cache - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.cache/firebase/emulators key: firebase-emulators-v2-${{ github.run_id }} @@ -80,7 +85,7 @@ jobs: npm run build ../scripts/start-firebase-emulator.sh - name: E2E Tests - uses: reactivecircus/android-emulator-runner@v2 + uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # v2 with: working-directory: tests api-level: 31 @@ -94,6 +99,8 @@ jobs: timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + with: + persist-credentials: false - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f name: Install Node.js with: @@ -124,7 +131,7 @@ jobs: with: key: ${{ runner.os }}-ios-v3 max-size: 700M - - uses: actions/cache@v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 name: Pods Cache id: pods-cache with: @@ -134,7 +141,7 @@ jobs: - name: "Install Tools" run: sudo npm i -g firebase-tools - name: Firebase Emulator Cache - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.cache/firebase/emulators key: firebase-emulators-v1-${{ github.run_id }} @@ -190,6 +197,8 @@ jobs: timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + with: + persist-credentials: false - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f name: Install Node.js with: @@ -203,7 +212,7 @@ jobs: with: key: ${{ runner.os }}-macos-v2 max-size: 700M - - uses: actions/cache@v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 name: Pods Cache id: pods-cache with: @@ -213,7 +222,7 @@ jobs: - name: "Install Tools" run: sudo npm i -g firebase-tools - name: Cache Firebase Emulator - uses: actions/cache@v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.cache/firebase/emulators key: firebase-emulators-v1-${{ github.run_id }} @@ -254,6 +263,8 @@ jobs: timeout-minutes: 15 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + with: + persist-credentials: false - uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225 with: channel: 'stable' @@ -270,4 +281,4 @@ jobs: cd ../../firebase_ui_firestore/example flutter build web cd ../../firebase_ui_storage/example - flutter build web \ No newline at end of file + flutter build web diff --git a/.github/workflows/issue-labels.yml b/.github/workflows/issue-labels.yml index 17ea44a7..f06e9697 100644 --- a/.github/workflows/issue-labels.yml +++ b/.github/workflows/issue-labels.yml @@ -28,14 +28,14 @@ jobs: GITHUB_EVENT_COMMENT_USER_LOGIN: ${{ github.event.comment.user.login }} - name: Add 'Needs Attention' label if OP responded if: env.op_comment == 'true' - uses: actions-ecosystem/action-add-labels@v1 + uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1 with: labels: 'Needs Attention' env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - name: Remove 'blocked customer response' label if OP responded if: env.op_comment == 'true' - uses: actions-ecosystem/action-remove-labels@v1 + uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1 with: labels: 'blocked: customer response' env: @@ -47,7 +47,7 @@ jobs: issues: write steps: - name: Add 'Needs Attention' label to new issue - uses: actions-ecosystem/action-add-labels@v1 + uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1 with: labels: 'Needs Attention' env: diff --git a/.github/workflows/ossf-scorecard.yml b/.github/workflows/ossf-scorecard.yml index 45d177aa..2c89b683 100644 --- a/.github/workflows/ossf-scorecard.yml +++ b/.github/workflows/ossf-scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v3.1.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false diff --git a/.github/workflows/pr_title.yml b/.github/workflows/pr_title.yml index e18da945..216318e6 100644 --- a/.github/workflows/pr_title.yml +++ b/.github/workflows/pr_title.yml @@ -1,13 +1,15 @@ name: pr_title on: - pull_request_target: + # This workflow is safe because it only validates the PR title and does not checkout any code. + pull_request_target: # zizmor: ignore[dangerous-triggers] types: - opened - edited - synchronize -permissions: read-all +permissions: + statuses: write env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 81698c58..b50954be 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -13,7 +13,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/stale@v10 + - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10 with: operations-per-run: 1000 stale-issue-message: | diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 2502c780..f199f7b4 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -16,7 +16,8 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permissions: read-all +permissions: + contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -28,7 +29,9 @@ jobs: packages: ${{ steps.filter.outputs.changed_packages }} has_changes: ${{ steps.filter.outputs.changed_packages != '[]' }} steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - uses: ./.github/actions/changes id: filter @@ -44,12 +47,14 @@ jobs: target: ["html", "io"] steps: - - uses: actions/checkout@v6.0.2 - - uses: subosito/flutter-action@v2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 with: channel: "stable" cache: true - - uses: bluefireteam/melos-action@v3 + - uses: bluefireteam/melos-action@2982f8e4fc92440a219490009d6d05195cb1a6a5 # v3 with: melos-version: "^7.5.0"