Skip to content

Commit

Permalink
Merge pull request #1321 from sillsdev/josephmyers-patch-1
Browse files Browse the repository at this point in the history
Create set-backlog-fields.yml
  • Loading branch information
josephmyers authored Mar 16, 2022
2 parents 7b023a7 + 0ad949b commit ea2dd04
Showing 1 changed file with 103 additions and 0 deletions.
103 changes: 103 additions & 0 deletions .github/workflows/set-backlog-fields.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Add Issue to Project

on:
issues:
types: [ opened ]

jobs:
steve:
if: ${{ !github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@3bc28d706f1f8026f2d39c8fc790d4336bb1cf7e
with:
app_id: ${{ secrets.LFPROJECTBOARDAUTOMATION_APP_ID }}
private_key: ${{ secrets.LFPROJECTBOARDAUTOMATION_PRIVATE_KEY }}

- name: determine if issue is already on a project
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
REPO: ${{ toJson(github.event.repository.name) }}
ORGANIZATION: sillsdev
run: |
echo issue $ISSUE_NUMBER added to $REPO
gh api graphql -f query='
query($issue_number:Int!, $org:ID!) {
repository(name:"web-languageforge", owner:$org) {
issue(number: $issue_number) {
id
projectNextItems(first:100) {
nodes {
id
}
}
}
}
}' -F issue_number=$ISSUE_NUMBER -f org=$ORGANIZATION > project_data.json
echo 'IN_PROJECT='$(jq '.data.repository.issue.projectNextItems[] | length' project_data.json) >> $GITHUB_ENV
- name: get required info for set operations
run: |
gh api graphql -f query='
query($org: String!) {
organization(login: $org){
projectNext(number: 1) {
id
fields(first:100) {
nodes {
id
name
settings
}
}
}
}
}' -f org=$ORGANIZATION > project_data.json
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Backlog") | .id' project_data.json) >> $GITHUB_ENV
echo 'TRIAGE_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Backlog") | .settings | fromjson.options[] | select(.name=="Triage") | .id' project_data.json) >> $GITHUB_ENV
- name: Add issue to project
if: env.IN_PROJECT == 0
env:
ISSUE_ID: ${{ github.event.issue.node_id }} #use ITEM_ID instead for finding on projects
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $item:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $item}) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f item=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: set Backlog field
if: env.IN_PROJECT == 0
run: |
gh api graphql -f query='
mutation(
$project:ID!
$item:ID!
$field: ID!
$field_value: String!)
{
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $field_value})
{
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f item=$ITEM_ID -f field=$FIELD_ID -f field_value=${{ env.TRIAGE_ID }}

0 comments on commit ea2dd04

Please sign in to comment.