name: Update Issue Status to In Development on: create: branches: - '*-*' jobs: update-status: runs-on: ubuntu-latest steps: - name: Extract Issue Number from Branch Name id: extract-issue-number run: | ISSUE_NUMBER=$(echo $GITHUB_REF_NAME | cut -d'-' -f1) echo "Issue Number extracted: $ISSUE_NUMBER" echo "ISSUE_NUMBER=$ISSUE_NUMBER" >> $GITHUB_ENV - name: Get project item ID id: get-project-item-id env: GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }} PROJECT_ID: "PVT_kwDOCjbMFM4AjuUh" run: | echo "Fetching project item ID for issue number: $ISSUE_NUMBER" QUERY=' query fetchProjectItem($project: ID!) { node(id: $project) { ... on ProjectV2 { items(first: 100) { nodes { id content { ... on Issue { number } } } } } } }' item_id=$(gh api graphql -f query="$QUERY" -f project=$PROJECT_ID --jq '.data.node.items.nodes[] | select(.content.number == '"$ISSUE_NUMBER"') | .id') if [ -z "$item_id" ]; then echo "Error: Project item ID not found for issue number $ISSUE_NUMBER" exit 1 else echo "Project item ID found: $item_id" echo "PROJECT_ITEM_ID=$item_id" >> $GITHUB_ENV fi - name: Get single select field ID and options id: get-field-options env: GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }} PROJECT_ID: "PVT_kwDOCjbMFM4AjuUh" run: | echo "Fetching field ID and options for status" QUERY=' query($project:ID!) { node(id: $project) { ... on ProjectV2 { fields(first: 100) { nodes { ... on ProjectV2SingleSelectField { id name options { id name } } } } } } }' field_data=$(gh api graphql -f query="$QUERY" -f project=$PROJECT_ID --jq '.data.node.fields.nodes[] | select(.name == "Status")') field_id=$(echo $field_data | jq -r '.id') in_development_option_id=$(echo $field_data | jq -r '.options[] | select(.name == "In Development") | .id') if [ -z "$field_id" ] || [ -z "$in_development_option_id" ]; then echo "Error: Field ID or In Development option ID not found" exit 1 else echo "Field ID: $field_id" echo "In Development option ID: $in_development_option_id" echo "FIELD_ID=$field_id" >> $GITHUB_ENV echo "IN_DEVELOPMENT_OPTION_ID=$in_development_option_id" >> $GITHUB_ENV fi - name: Set status to In Development env: GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }} PROJECT_ITEM_ID: ${{ env.PROJECT_ITEM_ID }} FIELD_ID: ${{ env.FIELD_ID }} IN_DEVELOPMENT_OPTION_ID: ${{ env.IN_DEVELOPMENT_OPTION_ID }} run: | echo "Setting status for Project Item ID: ${PROJECT_ITEM_ID}" result=$(gh api graphql -f query=' mutation($project:ID!, $item:ID!, $fieldId:ID!, $value:String!) { updateProjectV2ItemFieldValue(input: { projectId: $project itemId: $item fieldId: $fieldId value: { singleSelectOptionId: $value } }) { projectV2Item { id } } }' -f project="PVT_kwDOCjbMFM4AjuUh" -f item="${PROJECT_ITEM_ID}" -f fieldId="${FIELD_ID}" -f value="${IN_DEVELOPMENT_OPTION_ID}") echo "Set status result: $result"