No doc of on.merge_group.<branches|branches-ignore>
#3557
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Move new issues to correct docs repo | |
# **What it does**: If anyone creates an issue in the docs-internal repo for the engineering team or the content team, move that issue and notify the author | |
# **Why we have it**: We don't want engineering or content issues in the docs-internal repo | |
# **Who does it impact**: GitHub staff. | |
on: | |
issues: | |
types: | |
# Note, if an issue is transferred from github/some-other-repo | |
# over to github/docs-internal, this will trigger both 'transferred' | |
# *and* 'opened' events. And 'opened' covers the most basic case | |
# of an issue being created here in this repo. | |
- opened | |
- reopened | |
permissions: | |
contents: read | |
jobs: | |
transfer_issue: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
if: github.repository == 'github/docs-internal' | |
steps: | |
- id: move_to_correct_repo | |
uses: actions/github-script@e69ef5462fd455e02edcaf4dd7708eda96b9eda0 | |
env: | |
TEAM_ENGINEERING_REPO: ${{ secrets.TEAM_ENGINEERING_REPO }} | |
TEAM_CONTENT_REPO: ${{ secrets.TEAM_CONTENT_REPO }} | |
with: | |
github-token: ${{ secrets.DOCS_BOT_PAT_WORKFLOW_READORG }} | |
script: | | |
const issueNo = context.issue.number | |
const owner = 'github' | |
const originalRepo = 'docs-internal' | |
// See if the engineering label is present. | |
const engineeringLabel = context.payload.issue.labels.find(label => label.name === 'engineering') | |
// Transfer engineering issues to the engineering repo and everything else to the Docs Content repo | |
let correctRepo = process.env.TEAM_CONTENT_REPO | |
if (engineeringLabel) { | |
correctRepo = process.env.TEAM_ENGINEERING_REPO | |
} | |
const correctRepoObject = await github.rest.repos.get({ | |
owner: owner, | |
repo: correctRepo | |
}) | |
// Post a comment in the docs-internal issue | |
await github.rest.issues.createComment({ | |
owner: owner, | |
repo: originalRepo, | |
issue_number: issueNo, | |
body: `👋 You opened this issue in '${context.repo.repo}'. Moving forward, we're asking that folks create new issues in the following repositories instead:\n- For issues with the docs site, please submit to the [${process.env.TEAM_ENGINEERING_REPO}](/${owner}/${process.env.TEAM_ENGINEERING_REPO}) repo.\n- For all new content issues, please submit to the [${process.env.TEAM_CONTENT_REPO}](/${owner}/${process.env.TEAM_CONTENT_REPO}) repo.\n\nWe will transfer this issue for you!` | |
}) | |
// Transfer the issue to the correct repo | |
const issueNodeId = context.payload.issue.node_id | |
const correctRepositoryNodeId = correctRepoObject.data.node_id | |
console.log(`Issue GraphQL Node ID: ${issueNodeId}`) | |
console.log(`Repository GraphQL Node ID: ${correctRepositoryNodeId}`) | |
const mutation = `mutation ($id: ID!, $repositoryId: ID!) { | |
transferIssue(input: { | |
issueId: $id, | |
repositoryId: $repositoryId | |
}) { | |
issue { | |
url, | |
number | |
} | |
} | |
}` | |
const variables = { | |
id: issueNodeId, | |
repositoryId: correctRepositoryNodeId | |
} | |
const graph = await github.graphql(mutation, variables) | |
console.log('GraphQL mutation result:\n' + JSON.stringify(graph)) | |
// Add the same labels to the new issue | |
const newIssueNumber = graph.transferIssue.issue.number | |
await github.rest.issues.addLabels({ | |
owner: owner, | |
repo: correctRepo, | |
issue_number: newIssueNumber, | |
labels: context.payload.issue.labels.map(label => label.name), | |
}) | |
- name: Check out repo | |
if: ${{ failure() }} | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- uses: ./.github/actions/slack-alert | |
if: ${{ failure() }} | |
with: | |
slack_channel_id: ${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }} | |
slack_token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }} |