diff --git a/.github/copy-pr-bot.yaml b/.github/copy-pr-bot.yaml index 4cfbdc7f05f..b9e97b18946 100644 --- a/.github/copy-pr-bot.yaml +++ b/.github/copy-pr-bot.yaml @@ -1,3 +1,4 @@ enabled: true auto_sync_draft: false auto_sync_ready: true +trustees_override: ["AAnoosheh", "ArEsKay3", "Autumn1998", "BestJuly", "BoxiangW", "ChenhanYu", "FDecaYed", "HaochenYuan", "ISEEKYAN", "JRD971000", "QiZhangNV", "ShriyaRishab", "Victarry", "Wohox", "ZhiyuLi-Nvidia", "aklife97", "ananthsub", "asolergi-nv", "buptzyb", "chtruong814", "cspades", "cuichenx", "deepakn94", "dimapihtar", "duncanriach", "erhoo82", "ericharper", "fanshiqing", "gautham-kollu", "hxbai", "jaredcasper", "jkamalu", "jon-barker", "kanz-nv", "kevalmorabia97", "ko3n1g", "kunlunl", "kvareddy", "layalir", "lhb8125", "lmcafee-nvidia", "maanug-nv", "mathemakitten", "matthieule", "mkhona-nvidia", "pablo-garay", "pthombre", "rogerwaleffe", "sanandaraj5597", "santhnm2", "sbak5", "shanmugamr1992", "sidsingh-nvidia", "skyw", "tdene", "theothermike", "thomasdhc", "trintamaki", "tylerpoon", "wdykas", "xiaoyao0115", "yanring", "yaox12", "yaoyu-33", "yashaswikarnati", "yobibyte", "youngeunkwon0405", "yuzhongw-nvidia", "zhongbozhu"] diff --git a/.github/workflows/auto-update-copy-pr-bot.yml b/.github/workflows/auto-update-copy-pr-bot.yml new file mode 100644 index 00000000000..25b3a3d2a30 --- /dev/null +++ b/.github/workflows/auto-update-copy-pr-bot.yml @@ -0,0 +1,60 @@ +name: Auto Update Copy PR Bot + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + +jobs: + auto-update-copy-pr-bot: + runs-on: ubuntu-latest + environment: nemo-ci + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Fetch list of members in mcore-reviewers team + shell: bash -euxo pipefail {0} + env: + GH_TOKEN: ${{ secrets.PAT }} + run: | + #!/bin/bash + + get_members() { + local org=$1 team=$2 seen_file=$3 + + gh api "/orgs/$org/teams/$team/members" --paginate --jq '.[].login' >> "$seen_file" + + gh api "/orgs/$org/teams/$team/teams" --paginate --jq '.[].slug' | while read -r child; do + get_members "$org" "$child" "$seen_file" + done + + cat "$seen_file" + } + + tmp=$(mktemp) + echo "" > final.txt + get_members "NVIDIA" "mcore-engineers" "$tmp" | sort -u >> final.txt && rm "$tmp" + + tmp=$(mktemp) + get_members "NVIDIA" "mcore-reviewers" "$tmp" | sort -u >> final.txt && rm "$tmp" + + cat final.txt | jq -sR 'split("\n") | map(select(. != "")) | flatten | unique' + + export TRUSTEES=$(cat final.txt | jq -csR 'split("\n") | map(select(. != "")) | flatten | unique') + yq '.trustees_override = env(TRUSTEES)' .github/copy-pr-bot.yaml | yq -o yaml > .github/copy-pr-bot.yaml.new + + mv .github/copy-pr-bot.yaml.new .github/copy-pr-bot.yaml + + - name: Commit changes + run: | + git remote set-url origin https://x-access-token:${{ secrets.PAT }}@github.com/NVIDIA/Megatron-LM.git + git config --global user.name "GitHub Actions" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git add .github/copy-pr-bot.yaml + if git diff --cached --exit-code --quiet; then + echo "No changes to commit. Exiting gracefully." + exit 0 + fi + git commit -m "Update copy-pr-bot.yaml [skip ci]" + git push