Skip to content

Enhance Slack notifications and automate GitHub assignment replies based on issue labels #23

@GarvitSinghal47

Description

@GarvitSinghal47

🙂 Looking for an issue? Welcome! This issue is open for contribution. If this is the first time you’re requesting an issue, please:

  • Read the Contributing guidelines carefully. Pay extra attention to the Using generative AI. Pull requests and comments that don’t follow the guidelines won’t be answered.
  • Confirm that you’ve read the guidelines in your comment.

Enhanced Community-related Slack Notifications and GitHub Automated Replies System

Background

Our current process uses the notify_team_new_comment action to post notifications of every external comment to the #support-dev Slack channel. While this keeps the core team informed, the high volume of notifications—especially for duplicate requests or non-assignment comments—leads to information overload.

Summary

To enable the core team to focus on the most important issues, the current system should be updated as follows:

  1. Issue Label Differentiation

    • Help-Wanted Issues
      • Continue current behavior (sending notifications to the #support-dev Slack channel and no automated reply on GitHub).
    • Non “Help-Wanted” Issues
      • Automatically post a GitHub reply (via the Learning Equality bot) if the contributor’s comment includes assignment-related keywords (e.g., “assign”, “assign me”, “please assign”, “claim”).

      • Trigger on every external comment; the action will then locate the last bot comment in that issue and only post a new reply if at least an hour has passed since the last one, keeping things efficient without complex polling.

      • The automated reply will inform the contributor that the issue is not available for assignment and include links to our contributing guidelines.

        Example:

        Hi @<username> 👋
        
        Thanks so much for your interest! This issue is currently reserved for the core team and isn’t available for assignment right now.
        
        If you’d like to get started contributing, please take a look at our [Contributing Guidelines](https://github.com/your-org/your-repo/blob/main/CONTRIBUTING.md) for tips on finding “help-wanted” issues, setting up your environment, and submitting a PR.
        
        We really appreciate your willingness to help—feel free to pick another issue labeled **help-wanted** and let us know if you have any questions. 😊
      • Regardless of whether the automated reply is posted, all qualifying comments (except those on pull requests and from maintainers, known bots, or contributors on the exclusion list) will trigger a Slack notification to the #support-dev-notifications channel.

  2. Slack Notifications

    • For Help-Wanted Issues
      • Send notifications to the #support-dev Slack channel using the SLACK_WEBHOOK_URL.
    • For Non “Help-Wanted” Issues
      • Send notifications to the #support-dev-notifications channel using the SLACK_COMMUNITY_NOTIFICATIONS_WEBHOOK_URL.
    • Every notification will include the repository name, a link to the comment (with the issue title properly escaped), the contributor’s username, and a direct link to the LE bot’s comment.
  3. Close Contributors List

    • There is a list of GitHub handles. For contributors on this list, we never post an automated GitHub reply and notifications are always sent to #support-dev (regardless of whether they comment on help-wanted or non–help-wanted issues).
    • The list will typically contain a small number of very close contributors. In the first version, the list will be maintained manually.

Implementation Details

  • Trigger:
    The workflow is triggered by the issue_comment event.

  • Logic Flow:

Image

  • Secrets and Webhooks:
    • Use SLACK_WEBHOOK_URL for notifications to #support-dev (help-wanted issues).
    • Use SLACK_COMMUNITY_NOTIFICATIONS_WEBHOOK_URL for notifications to #support-dev-notifications (non–help-wanted issues).

Acceptance Criteria

  • Follows the specification above
  • Implementation is manually tested
  • If logic from other actions is reused, it is refactored into helper methods (no new duplicates)
  • No regressions in any of the affected actions
  • Implemented in JavaScript

References

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions