зеркало из https://github.com/github/docs.git
add workflow to triage PRs opened by Hubber external contributors (#16018)
Co-authored-by: Zeke Sikelianos <zeke@sikelianos.com>
This commit is contained in:
Родитель
59bec6edfa
Коммит
3729aca71e
|
@ -0,0 +1,79 @@
|
||||||
|
name: First responder docs-content
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [reopened, opened, ready_for_review, unlabeled]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
first-responder-triage:
|
||||||
|
if: github.repository == 'github/docs-internal' && github.event.pull_request.draft == false && github.event.action != 'unlabeled'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check if the event originated from a team member
|
||||||
|
uses: actions/github-script@v2.0.0
|
||||||
|
id: set-result
|
||||||
|
with:
|
||||||
|
github-token: ${{secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES}}
|
||||||
|
result-encoding: string
|
||||||
|
script: |
|
||||||
|
const repoName = context.payload.repository.name
|
||||||
|
const ownerName = context.payload.repository.owner.login
|
||||||
|
const issueNumber = (context.eventName === "issues") ? context.payload.issue.number : context.payload.number
|
||||||
|
const updatedIssueInformation = await github.issues.get({
|
||||||
|
owner: ownerName,
|
||||||
|
repo: repoName,
|
||||||
|
issue_number: issueNumber
|
||||||
|
})
|
||||||
|
const teamMembers = await github.request(
|
||||||
|
`/orgs/github/teams/docs/members`
|
||||||
|
)
|
||||||
|
const logins = teamMembers.data.map(member => member.login)
|
||||||
|
if (logins.some(login => login === updatedIssueInformation.data.user.login)) {
|
||||||
|
console.log(`This issue or pull request was authored by a member of the github/docs team.`)
|
||||||
|
return 'true'
|
||||||
|
}
|
||||||
|
console.log(`This issue or pull request was authored by an external contributor.`)
|
||||||
|
return 'false'
|
||||||
|
- name: Label external contributor pull requests with docs-content-fr
|
||||||
|
uses: rachmari/labeler@v1.0.4
|
||||||
|
if: steps.set-result.outputs.result == 'false'
|
||||||
|
with:
|
||||||
|
repo-token: "${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}"
|
||||||
|
add-labels: "docs-content-fr"
|
||||||
|
- name: Triage to FR PR project column
|
||||||
|
uses: rachmari/actions-add-new-issue-to-column@v1.1.1
|
||||||
|
if: steps.set-result.outputs.result == 'false'
|
||||||
|
with:
|
||||||
|
action-token: ${{ secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES }}
|
||||||
|
project-url: "https://github.com/orgs/github/projects/1367"
|
||||||
|
column-name: "Docs-internal external contributor PRs"
|
||||||
|
|
||||||
|
first-responder-label-removed:
|
||||||
|
if: github.event.label.name == 'docs-content-fr' && github.event.action == 'unlabeled'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Dump GitHub context
|
||||||
|
env:
|
||||||
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||||
|
run: echo "$GITHUB_CONTEXT"
|
||||||
|
- name: Remove card from project
|
||||||
|
uses: actions/github-script@v2.0.0
|
||||||
|
with:
|
||||||
|
github-token: ${{secrets.DOCUBOT_FR_PROJECT_BOARD_WORKFLOWS_REPO_ORG_READ_SCOPES}}
|
||||||
|
result-encoding: string
|
||||||
|
script: |
|
||||||
|
const issueToRemove = context.payload.number
|
||||||
|
const cards = await github.projects.listCards({
|
||||||
|
column_id: 11130889
|
||||||
|
})
|
||||||
|
cards.data.forEach(card => {
|
||||||
|
if (card.content_url) {
|
||||||
|
const cardIssueNumber = parseInt(card.content_url.split('/').pop(), 10)
|
||||||
|
if (cardIssueNumber === issueToRemove) {
|
||||||
|
const cards = github.projects.deleteCard({
|
||||||
|
card_id: card.id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
Загрузка…
Ссылка в новой задаче