diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml new file mode 100644 index 000000000..a8b6e9d56 --- /dev/null +++ b/.github/workflows/actionlint.yml @@ -0,0 +1,84 @@ +# This file is synced from the `.github` repository, do not modify it directly. +name: Actionlint + +on: + push: + branches: + - main + - master + pull_request: + +defaults: + run: + shell: bash -xeuo pipefail {0} + +concurrency: + group: "actionlint-${{ github.ref }}" + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +env: + HOMEBREW_DEVELOPER: 1 + HOMEBREW_NO_AUTO_UPDATE: 1 + HOMEBREW_NO_ENV_HINTS: 1 + +permissions: {} + +jobs: + workflow_syntax: + if: github.repository_owner == 'Homebrew' + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Set up Homebrew + id: setup-homebrew + uses: Homebrew/actions/setup-homebrew@master + with: + core: false + cask: false + test-bot: false + + - name: Install tools + run: brew install actionlint shellcheck zizmor + + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + persist-credentials: false + + - run: zizmor --format sarif . > results.sarif + + - name: Upload SARIF file + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + with: + name: results.sarif + path: results.sarif + + - name: Set up actionlint + run: echo "::add-matcher::$(brew --repository)/.github/actionlint-matcher.json" + + - run: actionlint + + upload_sarif: + needs: workflow_syntax + # We want to always upload this even if `actionlint` failed. + # This is only available on public repositories. + if: > + always() && + !contains(fromJSON('["cancelled", "skipped"]'), needs.workflow_syntax.result) && + !github.event.repository.private + runs-on: ubuntu-latest + permissions: + contents: read + security-events: write + steps: + - name: Download SARIF file + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 + with: + name: results.sarif + path: results.sarif + + - name: Upload SARIF file + uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3 + with: + sarif_file: results.sarif + category: zizmor diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml index e38e019ae..ba2621be3 100644 --- a/.github/workflows/stale-issues.yml +++ b/.github/workflows/stale-issues.yml @@ -12,10 +12,11 @@ on: - cron: "0 0 * * *" issue_comment: -permissions: - contents: write - issues: write - pull-requests: write +permissions: {} + +defaults: + run: + shell: bash -xeuo pipefail {0} concurrency: group: stale-issues @@ -31,6 +32,10 @@ jobs: ) ) runs-on: ubuntu-latest + permissions: + contents: write + issues: write + pull-requests: write steps: - name: Mark/Close Stale Issues and Pull Requests uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 @@ -57,6 +62,10 @@ jobs: ) ) runs-on: ubuntu-latest + permissions: + contents: write + issues: write + pull-requests: write steps: - name: Mark/Close Stale `bump-formula-pr` and `bump-cask-pr` Pull Requests uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 diff --git a/.rubocop.yml b/.rubocop.yml index 41d750484..646abda13 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,10 +7,10 @@ AllCops: - "**/*.rbi" Exclude: - Homebrew/sorbet/rbi/{dsl,gems}/**/*.rbi - - Homebrew/sorbet/rbi/parlour.rbi - Homebrew/bin/* - Homebrew/vendor/**/* - Taps/*/*/vendor/**/* + - "**/vendor/**/*" SuggestExtensions: rubocop-minitest: false Layout/ArgumentAlignment: @@ -189,6 +189,8 @@ Style/OptionalBooleanParameter: AllowedMethods: - respond_to? - respond_to_missing? +Style/RedundantLineContinuation: + Enabled: false Style/RescueStandardError: EnforcedStyle: implicit Style/ReturnNil: diff --git a/.ruby-version b/.ruby-version index a0891f563..9c25013db 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.4 +3.3.6