Merge pull request #8394 from cli/andyfeller/triage-enhancements

Enhance discussion triage workflow
This commit is contained in:
Andy Feller 2023-12-01 13:59:25 -05:00 committed by GitHub
commit b215d03e7b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 67 additions and 32 deletions

View file

@ -1,32 +0,0 @@
name: Discussion Triage
run-name: ${{ github.event.issue.title }}
on:
issues:
types:
- labeled
jobs:
create-discussion:
if: github.event.label.name == 'discuss'
runs-on: ubuntu-latest
steps:
- name: Create a discussion in github/cli
run: |
export DISCUSSION_TITLE="Triage: ${ISSUE_TITLE} (#${ISSUE_NUMBER})"
gh api graphql -f query='
mutation($repositoryId: ID!, $categoryId: ID!, $title: String!, $body: String!) {
createDiscussion(
input: {repositoryId: $repositoryId, categoryId: $categoryId, title: $title, body: $body}
) {
discussion {
id
}
}
}' -f repositoryId="${GITHUB_CLI_REPOSITORY_ID}" -f categoryId="${TRIAGE_CATEGORY_ID}" -f title="${DISCUSSION_TITLE}" -f body="@${LABELLER} added the discuss label to https://github.com/cli/cli/issues/${ISSUE_NUMBER}"
env:
GITHUB_TOKEN: ${{ secrets.CLI_DISCUSSION_TRIAGE_TOKEN }}
ISSUE_TITLE: ${{ github.event.issue.title }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
LABELLER: ${{ github.event.sender.login }}
GITHUB_CLI_REPOSITORY_ID: "R_kgDODAqwpw"
TRIAGE_CATEGORY_ID: "DIC_kwDODAqwp84CajJa"

67
.github/workflows/triage.yml vendored Normal file
View file

@ -0,0 +1,67 @@
name: Discussion Triage
run-name: ${{ github.event_name == 'issues' && github.event.issue.title || github.event.pull_request.title }}
on:
issues:
types:
- labeled
pull_request:
types:
- labeled
env:
TARGET_REPO: github/cli
jobs:
issue:
runs-on: ubuntu-latest
if: github.event_name == 'issues' && github.event.action == 'labeled' && github.event.label.name == 'discuss'
steps:
- name: Create discuss issue based on source issue
env:
BODY: ${{ github.event.issue.body }}
CREATED: ${{ github.event.issue.created_at }}
GH_TOKEN: ${{ secrets.CLI_DISCUSSION_TRIAGE_TOKEN }}
LINK: ${{ github.repository }}#${{ github.event.issue.number }}
TITLE: ${{ github.event.issue.title }}
TRIGGERED_BY: ${{ github.triggering_actor }}
run: |
# Markdown quote source body by replacing newlines for newlines and markdown quoting
BODY="${BODY//$'\n'/$'\n'> }"
# Create discuss issue using dynamically constructed body within heredoc
cat << EOF | gh issue create --title "Triage issue \"$TITLE\"" --body-file - --repo "$TARGET_REPO" --label discuss
**Title:** $TITLE
**Issue:** $LINK
**Created:** $CREATED
**Triggered by:** @$TRIGGERED_BY
---
> $BODY
EOF
pull_request:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'discuss'
steps:
- name: Create discuss issue based on source pull request
env:
BODY: ${{ github.event.pull_request.body }}
CREATED: ${{ github.event.pull_request.created_at }}
GH_TOKEN: ${{ secrets.CLI_DISCUSSION_TRIAGE_TOKEN }}
LINK: ${{ github.repository }}#${{ github.event.pull_request.number }}
TITLE: ${{ github.event.pull_request.title }}
TRIGGERED_BY: ${{ github.triggering_actor }}
run: |
# Markdown quote source body by replacing newlines for newlines and markdown quoting
BODY="${BODY//$'\n'/$'\n'> }"
# Create discuss issue using dynamically constructed body within heredoc
cat << EOF | gh issue create --title "Triage PR \"$TITLE\"" --body-file - --repo "$TARGET_REPO" --label discuss
**Title:** $TITLE
**Pull request:** $LINK
**Created:** $CREATED
**Triggered by:** @$TRIGGERED_BY
---
> $BODY
EOF