Post PBB migration: Refactor "Schedule Friday" workflow
Overview
The new Projects Beta is structured a little differently from Projects (classic). During to our recent migration from Projects (classic) to Projects Beta, we scrubbed our workflows and removed all functionality that referenced 'columns' as this term is no longer used. We need to refactor our post migration workflows so that they have similar functionality as previously.
Details
The add-label.js file is part of the "Schedule Friday" workflow. It searches all open issues to check whether the issue assignee has been posting regular updates on the issue, and if not applies a label so to let the team know that the issue is stale. Prior to the Projects Beta migration, add-labels.js searched only those issues in the "In progress (actively working)" column, but this column reference is no longer valid. This file's logic needs to be rewritten in terms of the 'status' field instead, using GraphQL.
Action Items
- [ ] This issue involves GithHub Actions and GraphQL. You will need the new Project Board Beta set up in your repo so that you are able to test and demonstrate your solution. Refer to the "Resources/Instructions" section below to get started, and be sure to let us know if you have questions.
- [ ] In add-label.js, refactor the code using GraphQL so that only issues with a 'status' of "In progress (actively working)" are included.
- [ ] Important short: the functionality of "search for all issues with a particular status label" should be created as a new module in the utils/ directory. Use the existing module if another issue has already created it. << Confirm with the issue author and team.
- [ ] Around lines 115-118, there is a conditional that excludes issues that have labels from the "excludedLabels" list (around line 88). This was a temporary band aid and the logic + excludedLabels list should be removed.
Resources/Instructions
- Initial GraphQL queries and results
- GitHub GraphQL Explorer
- GitHub GraphQL API
- Hack for LAs GitHub Actions
- Pre-migration issues:
- PR #7055 fixes #6998
- This issue initiated by #6993
Hi @t-will-gillis, thank you for taking up this issue! Hfla appreciates you :)
Do let fellow developers know about your:- i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?) ii. ETA: (When do you expect this issue to be completed?)
You're awesome!
P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)
UPDATE: PR 6969 does not restore this issue; this was an error. Reopening this issue.
~Note: PR #6969 fixes #4505 restores the functionality that was removed when we migrated to Projects Beta using a GraphQL query and mutation.~
~Closing this specific issue as resolved since this issue's Action Items were completed by the other issue.~
Hi @mrodz, thank you for taking up this issue! Hfla appreciates you :)
Do let fellow developers know about your:- i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?) ii. ETA: (When do you expect this issue to be completed?)
You're awesome!
P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)
i. Availability: MTWTh 8am-8pm, FSSn 4pm-10pm ii. ETA: EOD 8/10
Hi @t-will-gillis, I followed everything up until the final checkbox.
This import was included in the patch:
const statusFieldIds = require("../../utils/_data/status-field-ids");
While not being used anywhere in the file:
'statusFieldIds' is declared but its value is never read. ts(6133)
Given that importing the module does not appear to have any side effects, should I remove this import or leave it as is?
Working at: efb64d1e2742a634a03716ac9560b19f6900c6c5
Hi @mrodz Since it isn't being used you can remove it. Thanks for asking!