You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
app/github/webhooks.py has only 52% test coverage (114 of 239 statements
untested). The webhook dispatcher — the core routing layer of the entire bot —
has large untested sections.
The slash command handlers (lines 204–253) are the primary user-facing
interface of the bot. The /label privilege escalation bug (Issue #85)
lives at line 269 and has no test — a test would have caught that the
issue author bypass was unintentional.
The installation repository handlers (lines 339–395) manage which repos
the bot operates on — bugs there could cause repos to be silently dropped
from tracking.
What Needs Tests
Timestamp skew check rejects deliveries >300s old
Push event invalidates config cache when hiero-bot.yml changes
Test Coverage Gap
Summary
app/github/webhooks.pyhas only 52% test coverage (114 of 239 statementsuntested). The webhook dispatcher — the core routing layer of the entire bot —
has large untested sections.
Uncovered Sections
_handle_issuesdispatch_handle_pull_requestdispatch/assign,/unassign,/check-eligibility,/help,/label)_handle_label_commandincluding the privilege escalation bypass (Issue/labelcommand allows any issue author to apply arbitrary labels (privilege escalation) #85)Why This Matters
The slash command handlers (lines 204–253) are the primary user-facing
interface of the bot. The
/labelprivilege escalation bug (Issue #85)lives at line 269 and has no test — a test would have caught that the
issue author bypass was unintentional.
The installation repository handlers (lines 339–395) manage which repos
the bot operates on — bugs there could cause repos to be silently dropped
from tracking.
What Needs Tests
hiero-bot.ymlchanges/assign,/unassign,/help,/check-eligibilityslash commands/label— maintainer can add label/label— non-maintainer non-author is rejected/label— issue author bypass (document expected behavior after/labelcommand allows any issue author to apply arbitrary labels (privilege escalation) #85 fix)installation_repositoriesadded/removed events