Skip to content

Maintainer coverage #10

Maintainer coverage

Maintainer coverage #10

name: Maintainer coverage
on:
pull_request:
paths: ['maintainers/**', 'scripts/maintainer-roster*', '.github/maintainers.json', '.github/CODEOWNERS', '.github/workflows/maintainer-coverage.yml', '.github/workflows/require-maintainer-approval.yml']
push:
branches: [main]
paths: ['maintainers/**', 'scripts/maintainer-roster*', '.github/maintainers.json', '.github/CODEOWNERS', '.github/workflows/maintainer-coverage.yml', '.github/workflows/require-maintainer-approval.yml']
schedule:
- cron: '0 9 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Validate roster and approval boundaries
run: |
node scripts/maintainer-roster.mjs validate
node --test scripts/maintainer-roster.test.mjs
audit:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Audit deployed policy and ownership
env:
GITHUB_TOKEN: ${{ github.token }}
run: node scripts/maintainer-roster.mjs audit > coverage-report.md
- name: Preserve report
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: maintainer-coverage
path: coverage-report.md
retention-days: 14