first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# ======================================================================================
|
||||
# Workflow: Label External Contributors
|
||||
# ======================================================================================
|
||||
# Usage:
|
||||
# - Runs whenever a pull request is opened.
|
||||
# - Adds the `external-contributor` label to the PR if the PR head repository is
|
||||
# a fork (i.e. it does not belong to the same repository as the base), and the
|
||||
# PR is not authored by a bot.
|
||||
#
|
||||
# Notes:
|
||||
# - The workflow triggers on `pull_request_target` rather than `pull_request` so
|
||||
# that it has the `pull-requests: write` permission needed to apply labels even
|
||||
# when the PR is opened from a fork. Because we never check out the PR's code
|
||||
# and only read the event payload, this trigger is safe.
|
||||
# ======================================================================================
|
||||
|
||||
name: Label External Contributors
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
|
||||
# Default to a read-only token. The job below widens permissions explicitly.
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
label-external-contributor:
|
||||
name: Label external-contributor PRs
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Determine and apply external-contributor label
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
const pr = context.payload.pull_request;
|
||||
const author = pr.user.login;
|
||||
|
||||
// Ignore PRs authored by bots.
|
||||
if (pr.user.type === 'Bot' || author.endsWith('[bot]')) {
|
||||
console.log(`Skipping bot user: ${author}`);
|
||||
return;
|
||||
}
|
||||
|
||||
// The PR comes from a fork if its head repo differs from its base repo.
|
||||
const isFork =
|
||||
!pr.head.repo ||
|
||||
pr.head.repo.full_name !== pr.base.repo.full_name;
|
||||
|
||||
console.log(
|
||||
`PR #${pr.number} by ${author}: isFork=${isFork}`,
|
||||
);
|
||||
|
||||
if (!isFork) {
|
||||
return;
|
||||
}
|
||||
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: pr.number,
|
||||
labels: ['external-contributor'],
|
||||
});
|
||||
console.log(`Labeled PR #${pr.number} as external-contributor`);
|
||||
Reference in New Issue
Block a user