triage_issue.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. name: Add Issue to Board
  2. on:
  3. issues:
  4. types: [opened]
  5. jobs:
  6. track_issue:
  7. runs-on: ubuntu-latest
  8. steps:
  9. - name: Get project data
  10. env:
  11. GITHUB_TOKEN: ${{ secrets.PAT }}
  12. run: |
  13. gh api graphql -f query='
  14. query {
  15. organization(login: "revoltchat"){
  16. projectV2(number: 3) {
  17. id
  18. fields(first:20) {
  19. nodes {
  20. ... on ProjectV2SingleSelectField {
  21. id
  22. name
  23. options {
  24. id
  25. name
  26. }
  27. }
  28. }
  29. }
  30. }
  31. }
  32. }' > project_data.json
  33. echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV
  34. echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
  35. echo 'TODO_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
  36. - name: Add issue to project
  37. env:
  38. GITHUB_TOKEN: ${{ secrets.PAT }}
  39. ISSUE_ID: ${{ github.event.issue.node_id }}
  40. run: |
  41. item_id="$( gh api graphql -f query='
  42. mutation($project:ID!, $issue:ID!) {
  43. addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) {
  44. item {
  45. id
  46. }
  47. }
  48. }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')"
  49. echo 'ITEM_ID='$item_id >> $GITHUB_ENV