Skip to content

GitHub Actions: Notify developers if they are working on multiple issues at once #4505

@jdingeman

Description

@jdingeman

Overview

We need a GitHub Action that notifies a developer when they have assigned themselves to multiple open issues, so that they don't "camp on issues".

Details

Camp on issues = when a person assigns themselves to multiple issues, planning on working on them in the future. You cannot work on two things simultaneously, so you are basically keeping other people who are looking for an issue from being able to start on them.

As a developer on the website team, you are expected to follow the chain of complexity when you assign yourself an issue; that is, two good first issues, one small issue, one medium issue, and at least one large issue while only working on one issue at a time.

Currently, when a developer assigns themselves an issue, a GitHub Action runs that posts this comment on the issue:

Message
Hi @developer, 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 :)  

When a developer assigns themselves to more than one issue, we want to post an alternate message instead.

Action Items

  • Become familiar with HfLA's GitHub Actions
  • Review the .github/workflows/issue-trigger.yml workflow and note the job "Ask-For-Preliminary-update", which is triggered when an issue is assigned (event_name and event.action). The workflow first checks labels, and then runs preliminary-update-comment.js to post a comment on the issue.
  • In preliminary-update-comment.js, add to the existing script with code that checks whether the developer is assigned to multiple issues and if so posts the alternate message.
  • Your script should check the following:
    • Whether the dev is assigned to multiple open issues at once
    • Since closed issues stay assigned to the dev that completed them, it should not look at any of the dev's closed issues
      • This should exclude any issues with label Complexity: Prework
      • This should exclude any devs who are members of either the 'website-merge' or 'website-admins' teams
      • This should exclude any Agenda issues (2010, 2027, 2212, 2607)
      • This should exclude any issues in the following columns:
        • "Emergent Requests"
        • "New Issue Approval"
  • Navigate to the add-preliminary-comment collection
    • Add a new .md file named multiple-issue-reminder.md
    • Copy the following text into the .md file
      <!-- Template for a notification to the assignee that they're already assigned to an open issue and that they will be unassigned -->
      Hello @${issueAssignee}, we appreciate you taking on this issue, however it looks like you're already working on another issue at this time. Please wait until your current issue is merged before taking on another issue. :)
      
      We are going to unassign you from this issue so you can focus on your current issue.
      
      Hfla appreciates you! :)
      
    • If the dev already has an open issue, the new comment multiple-issue-reminder.md should post instead of the comment that asks the dev for their availability
  • The script should also perform the following:
    • Unassign the dev from the issue
    • Add a ready for dev lead label
    • Move the issue to the "New Issue Approval" column for dev leads to reprioritize
  • Demonstrate your new GHA to the merge team

Resources/Instructions

Metadata

Metadata

Assignees

Type

No type

Projects

Status

QA

Relationships

None yet

Development

No branches or pull requests

Issue actions