Files
profilarr/.github/workflows/add-issue-to-project.yml

80 lines
2.7 KiB
YAML

name: Set Issue to In Development on Branch Creation
on:
create:
branches:
- '*'
jobs:
update-issue-status:
name: Update issue status to In Development
runs-on: ubuntu-latest
steps:
- name: Extract issue number from branch name
id: extract-issue-number
run: |
BRANCH_NAME="${GITHUB_REF##*/}"
if [[ "$BRANCH_NAME" =~ ^([0-9]+)- ]]; then
ISSUE_NUMBER="${BASH_REMATCH[1]}"
echo "ISSUE_NUMBER=$ISSUE_NUMBER" >> $GITHUB_ENV
else
echo "No issue number found in branch name."
exit 1
fi
- name: Get project item ID
id: get-project-item-id
env:
GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }}
PROJECT_ID: "PVT_kwDOCjbMFM4AjuUh"
ISSUE_NUMBER: ${{ env.ISSUE_NUMBER }}
run: |
echo "Fetching project item ID for issue number: $ISSUE_NUMBER"
item_id=$(gh api graphql -f query='
query($project:ID!) {
node(id: $project) {
... on ProjectV2 {
items(first: 100) {
nodes {
id
content {
... on Issue {
number
}
}
}
}
}
}
}' -f project=$PROJECT_ID --jq ".data.node.items.nodes[] | select(.content.number == $ISSUE_NUMBER) | .id" -F number=$ISSUE_NUMBER)
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_OUTPUT
fi
- name: Set status to "In Development"
env:
GITHUB_TOKEN: ${{ secrets.ADD_TO_PROJECT_PAT }}
PROJECT_ITEM_ID: ${{ steps.get-project-item-id.outputs.PROJECT_ITEM_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="PVTSSF_lADOCjbMFM4AjuUhzgcCn8s" -f value="in-development")
echo "Set status result: $result"