hackforla / website

Hack for LA's website
https://www.hackforla.org
GNU General Public License v2.0
326 stars 760 forks source link

JavaScript bug fix: "Schedule Friday" workflow #7080

Closed t-will-gillis closed 2 months ago

t-will-gillis commented 3 months ago

Overview

There is a bug in the "Schedule Friday" workflow that causes it to fail during runtime. We need to address this bug so that the workflow completes. Note: although this involves GitHub Actions / workflows, the main priority is to identify the bug in the JavaScript file and demonstrate a solution.

Details

Refer to the Schedule Friday workflow logs. Starting with the June 7th run, the workflow fails due to an error:

Screenshot 2024-06-28 101949

Observations which may or may not be relevant:

Action Items

Resources/Instructions

github-actions[bot] commented 3 months ago

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 :)

t-will-gillis commented 2 months ago

While reviewing the recommendations in #6840 (thank you, @joey-ma) , I re-reviewed the error that keeps stopping the "Schedule Friday" workflow at the same point (i.e. when reviewing issue 6882). I was unable to determine why the error repeatedly occurred at this specific issue: for some reason, the body of this specific "Pre-work Checklist" resolves to a 'null' value, and running matchAll() on a null value raises a TypeError. Note: this error does not occur with the set of pre-work issues before this one, nor with the set after. Since the return value from running findLinkedIssue() on a "Pre-work Checklist" will be 'false' or 'null' or 'falsy' (there are no linked issues), it is safe to wrap let matches = text.matchAll(re) in a try-catch, log the TypeError at 6882, and let the function run to completion.