Repository navigation
Update wins data to be posted to new project board #8701
Description
Prerequisite
- Be a member of Hack for LA. (There are no fees to join.) If you have not joined yet, please follow the steps on our Getting Started page and attend an onboarding session.
- Before you claim or start working on an issue, please make sure you have read our How to Contribute to Hack for LA Guide.
Overview
We need to update the Wins Google Apps scripts so that it starts adding issues from the old project board to the new project board's "Questions/In Review" column.
To set an issue's status, the current code uses a combination of REST API calls and Column Keys. The new project board uses GraphQL API calls and Status Field IDs. We must update this behavior to maintain the Wins workflow.
Action Items
- Refer to ALL of the steps in the Wins Google App Script documentation to set up your local environment for testing and development. 1
- Message a Team Lead to gain access to the following files required for this issue:
- Wins Form Admin Guide (To understand the Wins workflow)
- Wins-form (Responses) Google Sheet
- Wins-form Google Form
- gh-requests Google Document
- Set up your testing and development environment with the documentation provided.
- Message a Team Lead to gain access to the following files required for this issue:
- Trace how Wins are posted as issues to the old project board by reviewing
addIssueToProjectBoardColumnin the following files:google-apps-scripts/gh-requests/Code.jsgoogle-apps-scripts/wins-form-responses/Code.js
- In
gh-requests/Code.js:- Remove and replace classic Projects REST API calls with GraphQL mutations for Projects v2 compatibility by refactoring
addIssueToProjectBoardColumn. Rename the function to reflect this migration. 2 - You will need to add a GraphQL request helper, similar to existing REST request helpers.
- Remove and replace classic Projects REST API calls with GraphQL mutations for Projects v2 compatibility by refactoring
- In
wins-form-responses/Code.js:- Refer to the Status Field IDs utility file then note
PROJECT_ID,FIELD_ID, and any issue status fields that need to be replaced. 3 - Replace
COLUMN_KEYSwith a Project v2 Status Field ID object. IncludePROJECT_IDandFIELD_IDas they will be needed for GraphQL calls. - Edit the
createIssuefunction with your updatedaddIssueToProjectBoardfunction. - Ensure that the issue Status Field ID is set to
"InReview".
- Refer to the Status Field IDs utility file then note
- Additional fix for column numbering issue in
wins-form-responses/Code.js:- In the
mainfunction, replace:
with:// Filter out only the rows where display-column(colum 15) is set to true const filteredRows = Array.from(allRows).filter(win => win[15] === true);// Filter out only the rows where display column is set to true const display = columnHeaders.indexOf("Display?"); if (display == -1){ console.log("Ending script; Display column not found."); return 1; } const filteredRows = Array.from(allRows).filter(win => win[display] === true); - In the
- Test your changes locally and verify that any test Wins submissions populate your local fork.
- While testing, ensure the Wins responses Sheet contains LinkedIn Name and GitHub Handle columns as specified in 3.d of the Wins documentation. 1
- Remove any console output for GitHub PAT
- Refer to
9. Completing an issuein the Wins documentation before you create your PR. 1
Resources/Instructions
- Wins page URL: https://www.hackforla.org/wins
Footnotes
-
Wins Google App Script documentation and how to set up testing environment: Wins Google App Script Development Process ↩ ↩2 ↩3
-
GitHub Projects v2 GraphQL Documentation (take a look at addProjectV2ItemById and updateProjectV2ItemFieldValue): https://docs.github.com/en/graphql/reference/projects ↩
-
Website Project v2 Status Field IDs: https://github.com/hackforla/website/blob/gh-pages/github-actions/utils/_data/status-field-ids.js ↩
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsIn progress (actively working)
Activity