diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00b3529e..31e4cb4f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,12 @@ concurrency: group: ${{ github.ref }} cancel-in-progress: true +defaults: + run: + shell: bash + +permissions: {} + jobs: lint: name: Lint @@ -15,6 +21,8 @@ jobs: steps: - name: Check out source code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install Ruby and gems uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 @@ -35,6 +43,8 @@ jobs: steps: - name: Check out source code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install Ruby uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 @@ -57,7 +67,6 @@ jobs: runs-on: ubuntu-latest permissions: - contents: read id-token: write env: @@ -69,6 +78,8 @@ jobs: steps: - name: Check out source code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install Ruby uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 @@ -124,6 +135,8 @@ jobs: - name: Check out source code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install Ruby and gems uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..47bc24ca --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Release + +on: + push: + tags: + - v* + +defaults: + run: + shell: bash + +permissions: {} + +jobs: + release: + name: Release + + runs-on: ubuntu-latest + + permissions: + id-token: write + + steps: + - name: Check out source code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Install Ruby + uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 + + - name: Install gems + run: |- + bin/bundle config set --local deployment true + bin/bundle install + + - name: Release + uses: rubygems/release-gem@e9a6361a0b14562539327c2a02373edc56dd3169 # v1.1.4 diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 00000000..5601a16f --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,34 @@ +name: Audit GitHub Actions security + +on: + pull_request: + branches: + - main + + push: + branches: + - main + +defaults: + run: + shell: bash + +permissions: {} + +jobs: + zizmor: + name: Audit GitHub Actions security + + runs-on: ubuntu-latest + + permissions: + security-events: write + + steps: + - name: Check out code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Run zizmor + uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2 diff --git a/Gemfile.lock b/Gemfile.lock index 71d32329..1708cd91 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -364,4 +364,4 @@ CHECKSUMS zeitwerk (2.7.5) sha256=d8da92128c09ea6ec62c949011b00ed4a20242b255293dd66bf41545398f73dd BUNDLED WITH - 4.0.6 + 4.0.9 diff --git a/zizmor.yml b/zizmor.yml new file mode 100644 index 00000000..0c8eb649 --- /dev/null +++ b/zizmor.yml @@ -0,0 +1,6 @@ +rules: + secrets-outside-env: + disable: true + template-injection: + ignore: + - ci.yml