From 83c856661febda11222eab2c3abffae896eafabd Mon Sep 17 00:00:00 2001 From: Lauren Tan Date: Thu, 16 Jan 2025 12:08:28 -0500 Subject: [PATCH] [ci] Automatically label PRs from core team Adds a new `MAINTAINERS` file which contains github usernames of core team members. This file serves as documentation for core team membership and is also used to automatically label PRs from core. --- .github/workflows/shared_core_label.yml | 43 +++++++++++++++++++++++++ MAINTAINERS | 23 +++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 .github/workflows/shared_core_label.yml create mode 100644 MAINTAINERS diff --git a/.github/workflows/shared_core_label.yml b/.github/workflows/shared_core_label.yml new file mode 100644 index 0000000000000..325ffdfb2db41 --- /dev/null +++ b/.github/workflows/shared_core_label.yml @@ -0,0 +1,43 @@ +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: + notify: + runs-on: ubuntu-latest + steps: + - name: Check if actor is maintainer + id: check_maintainer + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs/promises'); + + async function getMaintainers() { + const data = await fs.readFile('./MAINTAINERS', { encoding: 'utf8' }); + return new Set(data.split('\n')); + } + + async function main() { + const maintainers = await getMaintainers(); + if (maintainers.has(github.event.actor)) { + return true; + } + return false; + } + - 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