name: codeowners on: push: branches: [main] tags: - "v[0-9]+.[0-9]+.[0-9]+*" pull_request_target: types: - opened - synchronize - edited - reopened env: # Make sure to exit early if cache segment download times out after 2 minutes. # We limit cache download as a whole to 5 minutes. SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 # Do not cancel this workflow on main. See https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/16616 concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: check-codeowners: timeout-minutes: 30 runs-on: ubuntu-24.04 if: ${{ github.actor != 'dependabot[bot]' && github.repository == 'open-telemetry/opentelemetry-collector-contrib' }} steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.22.11" cache: false - name: Cache Go Tools id: go-tools-cache timeout-minutes: 5 uses: actions/cache@v4 with: path: | ./.tools key: go-tools-${{ runner.os }}-${{ hashFiles('internal/tools/go.sum') }} - name: Install tools if: github.repository == 'open-telemetry/opentelemetry-collector-contrib' && steps.go-tools-cache.outputs.cache-hit != 'true' run: | make install-tools - uses: actions/checkout@v4 with: ref: ${{github.event.pull_request.head.ref}} repository: ${{github.event.pull_request.head.repo.full_name}} path: pr - name: Gen CODEOWNERS run: | cd pr GITHUB_TOKEN=${{ secrets.READ_ORG_AND_USER_TOKEN }} ../.tools/githubgen codeowners git diff -s --exit-code || (echo 'Generated code is out of date, please apply this diff and commit the changes in this PR.' && git diff && exit 1)