Skip to content

Update wins data to be posted to new project board #8701

Description

@castillios

Prerequisite

  1. 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.
  2. 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.
  • Trace how Wins are posted as issues to the old project board by reviewing addIssueToProjectBoardColumn in the following files:
    • google-apps-scripts/gh-requests/Code.js
    • google-apps-scripts/wins-form-responses/Code.js
  • Ingh-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.
  • 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_KEYS with a Project v2 Status Field ID object. Include PROJECT_ID and FIELD_ID as they will be needed for GraphQL calls.
    • Edit the createIssue function with your updated addIssueToProjectBoard function.
    • Ensure that the issue Status Field ID is set to "InReview".
  • Test your changes locally and verify that any test Wins submissions populate your local fork.
  • Refer to 9. Completing an issue in the Wins documentation before you create your PR. 1

Resources/Instructions

Footnotes

  1. Wins Google App Script documentation and how to set up testing environment: Wins Google App Script Development Process 2

  2. GitHub Projects v2 GraphQL Documentation (take a look at addProjectV2ItemById and updateProjectV2ItemFieldValue): https://docs.github.com/en/graphql/reference/projects

  3. 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

No one assigned

    Labels

    Complexity: LargeHomepage Launch CountdownTracking all issues related to homepage launchP-Feature: Wins Pagehttps://www.hackforla.org/wins/ready for merge teamneeds a senior review either to do some re writing or to approve it for ready for prioritizationrole: back end/devOpsTasks for back-end developerssize: 2ptCan be done in 7-12 hours

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    New Issue Approval

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions