From 757a7522e323db4c6bd82caa8d00fbb63500e78d Mon Sep 17 00:00:00 2001 From: santiagosayshey Date: Fri, 28 Jun 2024 08:28:01 +0930 Subject: [PATCH] bugfix: Correct issue number extraction and project item status update --- .github/workflows/add-issue-to-project.yml | 96 +++++----------------- 1 file changed, 21 insertions(+), 75 deletions(-) diff --git a/.github/workflows/add-issue-to-project.yml b/.github/workflows/add-issue-to-project.yml index 835abdd..1e6c8df 100644 --- a/.github/workflows/add-issue-to-project.yml +++ b/.github/workflows/add-issue-to-project.yml @@ -1,27 +1,33 @@ -name: Add Issue to Project +name: Set Issue to In Development on Branch Creation on: - issues: - types: [opened] + create: + branches: + - '*' jobs: - add-to-project: - name: Add issue to project + update-issue-status: + name: Update issue status to In Development runs-on: ubuntu-latest steps: - - 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: 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: ${{ github.event.issue.number }} + ISSUE_NUMBER: ${{ env.ISSUE_NUMBER }} run: | echo "Fetching project item ID for issue number: $ISSUE_NUMBER" item_id=$(gh api graphql -f query=' @@ -49,32 +55,12 @@ jobs: echo "PROJECT_ITEM_ID=$item_id" >> $GITHUB_OUTPUT fi - - name: Set component, type, and status + - 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 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: { - projectId: $project - itemId: $item - fieldId: $fieldId - value: { - singleSelectOptionId: $value - } - }) { - projectV2Item { - id - } - } - }' -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" + 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: { @@ -89,45 +75,5 @@ jobs: id } } - }' -f project="PVT_kwDOCjbMFM4AjuUh" -f item="${PROJECT_ITEM_ID}" -f fieldId="PVTSSF_lADOCjbMFM4AjuUhzgcCn8s" -f value="f75ad846") + }' -f project="PVT_kwDOCjbMFM4AjuUh" -f item="${PROJECT_ITEM_ID}" -f fieldId="PVTSSF_lADOCjbMFM4AjuUhzgcCn8s" -f value="in-development") 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 \ No newline at end of file