diff --git a/.github/workflows/shared_core_label.yml b/.github/workflows/shared_core_label.yml new file mode 100644 index 0000000000000..d957eb90ab189 --- /dev/null +++ b/.github/workflows/shared_core_label.yml @@ -0,0 +1,41 @@ +name: (Shared) Core Label + +on: + pull_request: + +env: + TZ: /usr/share/zoneinfo/America/Los_Angeles + # https://github.com/actions/cache/blob/main/tips-and-workarounds.md#cache-segment-restore-timeout + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1 + +jobs: + core_label: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check if actor is maintainer + id: check_maintainer + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + const actor = '${{ github.actor }}'; + const data = await fs.readFileSync('./MAINTAINERS', { encoding: 'utf8' }); + const maintainers = new Set(data.split('\n')); + if (maintainers.has(actor)) { + console.log(`🟢 ${actor} is a maintainer`); + return true; + } + console.log(`🔴 ${actor} is NOT a maintainer`); + return false; + - name: Label PR as React Core Team + if: ${{ steps.check_maintainer.outputs.result == true }} + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: github.event.number, + labels: ['React Core Team'] + }); diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000000000..3eda4c5b2d382 --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,23 @@ +acdlite +bvaughn +eps1lon +gaearon +gnoff +gsathya +hoxyq +jackpope +jbonta +josephsavona +kassens +lunaleaps +mattcarrollcode +mofeiZ +noahlemen +poteto +rickhanlonii +sebmarkbage +sethwebster +sophiebits +TheSavior +tyao1 +yuzhi