Skip to content

feat(github-app): add silent audit export for skipped PRs #105

Description

@JSONbored

Parent roadmap: #82

Background

Quiet-by-default behavior is good, but maintainers may still want to understand why Gittensory skipped specific PRs.

Goal

Provide private audit export for skipped PR decisions.

Current Behavior

Skipped PRs are audit logged internally, but maintainer-consumable export is limited.

Desired Behavior

Maintainers can inspect skip reasons such as non-miner, bot, maintainer-author default skip, detection unavailable, missing permissions, or disabled surface.

Implementation Requirements

  • Add private skip-audit query/export.
  • Include repo, PR number, reason code, timestamp, and remediation when applicable.
  • Bound result size and require auth.
  • Avoid storing or exporting unnecessary private data.

Public/Private Output Boundaries

Public GitHub output must stay quiet-by-default and sanitized. It must not include private reviewability, scoreability, reward/risk, raw trust, wallet/hotkey, or public score estimates.

Acceptance Criteria

  • Non-miner skip appears privately.
  • Bot skip appears privately.
  • Detection unavailable skip appears privately.
  • Export is bounded and permissioned.
  • No public surfaces are created.

Testing Requirements

  • npm run test:ci must pass.
  • Global coverage must remain at or above 97% for lines, statements, functions, and branches.
  • Aim for 98%+ branch coverage locally to avoid CI variance.
  • Add tests for every new branch, fallback path, sanitizer rule, and regression.
  • Add invariant/property-style tests when behavior depends on sorting, gating, scoring, queue pressure, source-upload safety, public/private boundaries, or upstream drift.
  • Public GitHub output must be tested against forbidden language: wallet, hotkey, raw trust score, payout, reward estimate, farming, private reviewability, and public score estimate.
  • MCP/local tooling must prove source contents are not uploaded.

Additional Test Scenarios

  • Skip reason fixtures.
  • Auth required test.
  • Pagination/bounds test.
  • Redaction regression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions