mirror of
https://github.com/Dictionarry-Hub/database.git
synced 2025-12-11 08:17:02 +00:00
115 lines
4.0 KiB
YAML
115 lines
4.0 KiB
YAML
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"
|