mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-01-22 10:51:02 +01:00
bugfix: Correct issue number extraction and project item status update
This commit is contained in:
96
.github/workflows/add-issue-to-project.yml
vendored
96
.github/workflows/add-issue-to-project.yml
vendored
@@ -1,33 +1,27 @@
|
||||
name: Set Issue to In Development on Branch Creation
|
||||
name: Add Issue to Project
|
||||
|
||||
on:
|
||||
create:
|
||||
branches:
|
||||
- '*'
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
update-issue-status:
|
||||
name: Update issue status to In Development
|
||||
add-to-project:
|
||||
name: Add issue to project
|
||||
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: Add to Project
|
||||
id: add-to-project
|
||||
uses: actions/add-to-project@v0.5.0
|
||||
with:
|
||||
project-url: https://github.com/orgs/Dictionarry-Hub/projects/1
|
||||
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
|
||||
|
||||
- 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 }}
|
||||
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
||||
run: |
|
||||
echo "Fetching project item ID for issue number: $ISSUE_NUMBER"
|
||||
item_id=$(gh api graphql -f query='
|
||||
@@ -55,12 +49,14 @@ jobs:
|
||||
echo "PROJECT_ITEM_ID=$item_id" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Set status to "In Development"
|
||||
- name: Set component, type, and status
|
||||
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}"
|
||||
echo "Setting fields for Project Item ID: ${PROJECT_ITEM_ID}"
|
||||
|
||||
# Set component to "Profilarr"
|
||||
result=$(gh api graphql -f query='
|
||||
mutation($project:ID!, $item:ID!, $fieldId:ID!, $value:String!) {
|
||||
updateProjectV2ItemFieldValue(input: {
|
||||
@@ -75,5 +71,63 @@ jobs:
|
||||
id
|
||||
}
|
||||
}
|
||||
}' -f project="PVT_kwDOCjbMFM4AjuUh" -f item="${PROJECT_ITEM_ID}" -f fieldId="PVTSSF_lADOCjbMFM4AjuUhzgcCn8s" -f value="in-development")
|
||||
}' -f project="PVT_kwDOCjbMFM4AjuUh" -f item="${PROJECT_ITEM_ID}" -f fieldId="PVTSSF_lADOCjbMFM4AjuUhzgcCr_E" -f value="48fc49c7")
|
||||
echo "Set component result: $result"
|
||||
|
||||
# Set status to "Backlog"
|
||||
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="f75ad846")
|
||||
echo "Set status result: $result"
|
||||
|
||||
# Get the label of the issue
|
||||
LABEL=$(gh api repos/${{ github.repository }}/issues/${{ github.event.issue.number }} --jq '.labels[0].name')
|
||||
echo "Issue label: $LABEL"
|
||||
|
||||
# Convert label to lowercase for comparison
|
||||
LABEL_LOWER=$(echo "$LABEL" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Set issue type based on label
|
||||
ISSUE_TYPE_ID=$(case $LABEL_LOWER in
|
||||
"bug") echo "b760225f" ;;
|
||||
"feature request") echo "1341bde2" ;;
|
||||
"improvement") echo "cb34d96f" ;;
|
||||
"documentation") echo "269885d0" ;;
|
||||
"refactor") echo "4996f537" ;;
|
||||
"infrastructure") echo "45a91bfe" ;;
|
||||
*) echo "" ;;
|
||||
esac)
|
||||
|
||||
if [ -z "$ISSUE_TYPE_ID" ]; then
|
||||
echo "No matching issue type for label: $LABEL"
|
||||
else
|
||||
echo "Setting issue type to ID: $ISSUE_TYPE_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_lADOCjbMFM4AjuUhzgcCswQ" -f value="$ISSUE_TYPE_ID")
|
||||
echo "Set issue type result: $result"
|
||||
fi
|
||||
2
.github/workflows/new-branch-created.yml
vendored
2
.github/workflows/new-branch-created.yml
vendored
@@ -72,7 +72,7 @@ jobs:
|
||||
id
|
||||
}
|
||||
}
|
||||
}' -f repository="${{ github.repository }}" -f owner="${{ github.repository_owner.login }}" -F number=$ISSUE_NUMBER --jq '.data.repository.issue.id')
|
||||
}' -f repository="${{ github.repository }}" -f owner="${{ github.repository_owner.login }}" -f number=$ISSUE_NUMBER --jq '.data.repository.issue.id')
|
||||
echo "ISSUE_NODE_ID=$ISSUE_NODE_ID"
|
||||
|
||||
# Set the status to "In Development"
|
||||
|
||||
Reference in New Issue
Block a user