├── .gitignore ├── README.md └── .github └── workflows ├── triage_issue.yml └── triage_pr.yml /.gitignore: -------------------------------------------------------------------------------- 1 | labels/apply.fish -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Revolt 2 | 3 | This repository is exclusively used [for discussions](https://github.com/revoltchat/revolt/discussions) (feature suggestions, questions and any general talk) and meta feature tracking. 4 | 5 | Please do not create any issues in the repository! 6 | -------------------------------------------------------------------------------- /.github/workflows/triage_issue.yml: -------------------------------------------------------------------------------- 1 | name: Add Issue to Board 2 | 3 | on: 4 | issues: 5 | types: [opened] 6 | 7 | jobs: 8 | track_issue: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Get project data 12 | env: 13 | GITHUB_TOKEN: ${{ secrets.PAT }} 14 | run: | 15 | gh api graphql -f query=' 16 | query { 17 | organization(login: "revoltchat"){ 18 | projectV2(number: 3) { 19 | id 20 | fields(first:20) { 21 | nodes { 22 | ... on ProjectV2SingleSelectField { 23 | id 24 | name 25 | options { 26 | id 27 | name 28 | } 29 | } 30 | } 31 | } 32 | } 33 | } 34 | }' > project_data.json 35 | 36 | echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV 37 | echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV 38 | echo 'TODO_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV 39 | 40 | - name: Add issue to project 41 | env: 42 | GITHUB_TOKEN: ${{ secrets.PAT }} 43 | ISSUE_ID: ${{ github.event.issue.node_id }} 44 | run: | 45 | item_id="$( gh api graphql -f query=' 46 | mutation($project:ID!, $issue:ID!) { 47 | addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { 48 | item { 49 | id 50 | } 51 | } 52 | }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')" 53 | 54 | echo 'ITEM_ID='$item_id >> $GITHUB_ENV 55 | -------------------------------------------------------------------------------- /.github/workflows/triage_pr.yml: -------------------------------------------------------------------------------- 1 | name: Add PR to Board 2 | 3 | on: 4 | pull_request_target: 5 | types: [opened, synchronize, ready_for_review, review_requested] 6 | 7 | jobs: 8 | track_pr: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Get project data 12 | env: 13 | GITHUB_TOKEN: ${{ secrets.PAT }} 14 | run: | 15 | gh api graphql -f query=' 16 | query { 17 | organization(login: "revoltchat"){ 18 | projectV2(number: 3) { 19 | id 20 | fields(first:20) { 21 | nodes { 22 | ... on ProjectV2SingleSelectField { 23 | id 24 | name 25 | options { 26 | id 27 | name 28 | } 29 | } 30 | } 31 | } 32 | } 33 | } 34 | }' > project_data.json 35 | 36 | echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV 37 | echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV 38 | echo 'INCOMING_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Incoming PRs") |.id' project_data.json) >> $GITHUB_ENV 39 | 40 | - name: Add PR to project 41 | env: 42 | GITHUB_TOKEN: ${{ secrets.PAT }} 43 | PR_ID: ${{ github.event.pull_request.node_id }} 44 | run: | 45 | item_id="$( gh api graphql -f query=' 46 | mutation($project:ID!, $pr:ID!) { 47 | addProjectV2ItemById(input: {projectId: $project, contentId: $pr}) { 48 | item { 49 | id 50 | } 51 | } 52 | }' -f project=$PROJECT_ID -f pr=$PR_ID --jq '.data.addProjectV2ItemById.item.id')" 53 | 54 | echo 'ITEM_ID='$item_id >> $GITHUB_ENV 55 | 56 | - name: Set fields 57 | env: 58 | GITHUB_TOKEN: ${{ secrets.PAT }} 59 | run: | 60 | gh api graphql -f query=' 61 | mutation ( 62 | $project: ID! 63 | $item: ID! 64 | $status_field: ID! 65 | $status_value: String! 66 | ) { 67 | set_status: updateProjectV2ItemFieldValue(input: { 68 | projectId: $project 69 | itemId: $item 70 | fieldId: $status_field 71 | value: { 72 | singleSelectOptionId: $status_value 73 | } 74 | }) { 75 | projectV2Item { 76 | id 77 | } 78 | } 79 | }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.INCOMING_OPTION_ID }} --silent 80 | --------------------------------------------------------------------------------