Skip to content

status_notifications.reaction config has no forge-compatibility validation #5998

Description

@ralphbean

What happens

validateStatusNotifications (internal/config/config.go) only checks that comment/reaction start/completion values are one of the allowed strings (enabled/disabled/on_failure). It has no awareness of which forge the config applies to.

If a repo on GitLab sets status_notifications.reaction.start: enabled (or completion), config parsing succeeds, but every reaction call at runtime hits forge.ErrNotSupported — GitLab's AddIssueReaction/DeleteIssueReaction/AddIssueCommentReaction/DeleteIssueCommentReaction (internal/forge/gitlab/issue.go) all return it unconditionally. Notifier.addReaction/deleteReaction (internal/statuscomment/statuscomment.go) fail open on that error — they log a warning via n.warnf and continue, so nothing ever reaches the user. The config looks valid and the run succeeds; reactions just silently never appear.

What should happen

A user enabling reaction notifications on a forge that doesn't support them should get some signal that the setting is inert — today they only find out by reasoning about the code or a log they aren't watching.

Context

Surfaced during review of #5957 (waynesun09), which introduced status_notifications.reaction and documented GitLab's ErrNotSupported behavior. Filed as a follow-up because fixing it well needs a forge-capability query at config-validation time, more design than fits in that PR.

Scoped to the confirmed GitLab gap; not asserting the same applies to JIRA — its current client (internal/forge/jira) is a polling input driver, not a forge.Client reaction target.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions