Skip to content

Commit 19de3fd

Browse files
update to version 2
1 parent 92a971f commit 19de3fd

File tree

1 file changed

+76
-11
lines changed

1 file changed

+76
-11
lines changed

.github/workflows/create-docs-card.yml

Lines changed: 76 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,90 @@ jobs:
2020
create-docs-card:
2121
runs-on: ubuntu-latest
2222
steps:
23-
- name: Create project card for documentation
23+
- name: Create project card for documentation (Projects v2)
2424
env:
2525
GH_TOKEN: ${{ secrets.GH_TOKEN }}
26-
ISSUE_URL: ${{ inputs.issue_url }}
2726
ISSUE_TITLE: ${{ inputs.issue_title }}
27+
ISSUE_URL: ${{ inputs.issue_url }}
2828
REPO: ${{ inputs.repo }}
2929
run: |
30-
COLUMN_NAME="Update docs"
30+
set -e
31+
32+
OWNER=$(echo "$REPO" | cut -d/ -f1)
33+
REPO_NAME=$(echo "$REPO" | cut -d/ -f2)
34+
35+
PROJECT_TITLE="Documentation Project" # Adjust this to your actual project name
36+
FIELD_NAME="Update docs" # Adjust this to your actual field (column) name
37+
38+
echo "Fetching Project ID..."
39+
PROJECT_ID=$(gh api graphql -F owner="$OWNER" -F name="$REPO_NAME" -F projectTitle="$PROJECT_TITLE" -f query='
40+
query($owner: String!, $name: String!, $projectTitle: String!) {
41+
repository(owner: $owner, name: $name) {
42+
projectsV2(first: 10, query: $projectTitle) {
43+
nodes {
44+
id
45+
title
46+
}
47+
}
48+
}
49+
}
50+
' | jq -r '.data.repository.projectsV2.nodes[] | select(.title == env.PROJECT_TITLE) | .id')
51+
52+
if [ -z "$PROJECT_ID" ]; then
53+
echo "Project not found: $PROJECT_TITLE"
54+
exit 1
55+
fi
56+
57+
echo "Project ID found: $PROJECT_ID"
3158
32-
PROJECT_ID=$(gh api repos/$REPO/projects | jq -r '.[0].id')
33-
COLUMN_ID=$(gh api /projects/$PROJECT_ID/columns | jq -r ".[] | select(.name==\"$COLUMN_NAME\") | .id")
59+
echo "Fetching field ID for the column..."
60+
FIELD_ID=$(gh api graphql -f query='
61+
query ($projectId: ID!) {
62+
node(id: $projectId) {
63+
... on ProjectV2 {
64+
fields(first: 20) {
65+
nodes {
66+
id
67+
name
68+
}
69+
}
70+
}
71+
}
72+
}
73+
' -F projectId="$PROJECT_ID" | jq -r '.data.node.fields.nodes[] | select(.name=="'$FIELD_NAME'") | .id')
3474
35-
if [ -z "$COLUMN_ID" ]; then
36-
echo "Project column not found"
75+
if [ -z "$FIELD_ID" ]; then
76+
echo "Field (column) not found: $FIELD_NAME"
3777
exit 1
3878
fi
3979
40-
gh api /projects/columns/$COLUMN_ID/cards \
41-
-f note="**${ISSUE_TITLE}**\n[Original Issue](${ISSUE_URL})" \
42-
-H "Accept: application/vnd.github.v3+json"
80+
echo "Field ID found: $FIELD_ID"
81+
82+
echo "Creating a new project card..."
83+
84+
CREATE_CARD_MUTATION='
85+
mutation ($projectId: ID!, $title: String!) {
86+
addProjectV2ItemByDraftIssue(input: {
87+
projectId: $projectId,
88+
title: $title
89+
}) {
90+
item {
91+
id
92+
}
93+
}
94+
}
95+
'
96+
97+
CONTENT="**${ISSUE_TITLE}** - [Original Issue](${ISSUE_URL})"
98+
99+
RESULT=$(gh api graphql -f query="$CREATE_CARD_MUTATION" -F projectId="$PROJECT_ID" -F title="$CONTENT")
100+
101+
ITEM_ID=$(echo "$RESULT" | jq -r '.data.addProjectV2ItemByDraftIssue.item.id')
102+
103+
if [ -z "$ITEM_ID" ] || [ "$ITEM_ID" = "null" ]; then
104+
echo "Failed to create project card."
105+
echo "$RESULT"
106+
exit 1
107+
fi
43108
44-
echo "Card created in column: $COLUMN_NAME"
109+
echo "Project card created successfully with ID: $ITEM_ID"

0 commit comments

Comments
 (0)