diff --git a/.github/workflows/discussion-triage.yml b/.github/workflows/discussion-triage.yml deleted file mode 100644 index 9397e5103..000000000 --- a/.github/workflows/discussion-triage.yml +++ /dev/null @@ -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" - diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml new file mode 100644 index 000000000..71fc5426d --- /dev/null +++ b/.github/workflows/triage.yml @@ -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