name: Move new issues into Project on: workflow_call: inputs: github-org: type: string default: specklesystems description: The organisation the project belongs to project-number: type: number default: 11 description: The project number where the issue should be updated issue-id: type: number required: true secrets: GHPROJECT_TOKEN: required: true outputs: item-id: type: string value: ${{ steps.add-issue.outputs.ITEM_ID }} env: GITHUB_TOKEN: ${{ secrets.GHPROJECT_TOKEN }} jobs: track_issue: runs-on: ubuntu-latest steps: - name: Get project data run: | gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' query($org: String!, $number: Int!) { organization(login: $org){ projectNext(number: $number) { id fields(first:20) { nodes { id name settings } } } } }' -f org=${{ inputs.github-org }} -F number=${{ inputs.project-number }} > project_data.json echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV - id: add-issue name: Add Issue to project run: | item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query=' mutation($project:ID!, $id:ID!) { addProjectNextItem(input: {projectId: $project, contentId: $id}) { projectNextItem { id } } }' -f project=$PROJECT_ID -f id=${{ inputs.issue-id }} --jq '.data.addProjectNextItem.projectNextItem.id')" echo 'ITEM_ID='$item_id >> $GITHUB_OUTPUT