Skip to content

COOL IDEA™: extend machine-local path hygiene to GitHub metadata #841

Description

@flyingrobots

Classification

COOL IDEA™ — defense-in-depth beyond Git object publication.

Idea

Reuse the machine-local path policy for pull-request, issue, comment, and review metadata. The current pre-commit, pre-push, and CI guards protect working-tree content and Git objects; GitHub-authored metadata lives outside that boundary and can still disclose workstation layout.

Capability boundary

A GitHub event workflow can detect a leak after metadata is published and can block a merge, alert maintainers, or initiate an authorized redaction path. It cannot prevent the first publication. Prevention therefore also needs a supported outbound writer or preflight command that scans proposed GitHub text before gh or an API client sends it.

Proposed shape

  • Expose the existing policy as a reusable text preflight for PR, issue, comment, and review bodies.
  • Provide a supported repository command or wrapper that checks outbound GitHub metadata before publication.
  • Add a least-privilege GitHub event backstop for PR titles and bodies, issue bodies, comments, and reviews.
  • Make a detected PR-surface leak a required merge-blocking check.
  • Report only the surface identifier and field name; never echo matching content.
  • Define an explicit, authorized redaction workflow rather than silently rewriting user-authored text.
  • Keep fork-triggered execution safe and avoid evaluating untrusted repository code with elevated permissions.

Acceptance

  • Representative metadata fixtures cover workstation-home paths on major platforms and private temporary-workspace paths.
  • Safe portable placeholders remain admitted.
  • The local preflight rejects unsafe text before an outbound test double is invoked.
  • The GitHub backstop identifies unsafe metadata without reproducing the secret text.
  • The permission model and the after-publication limitation are documented.

Related implementation boundary: #838.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:toolingPrimary work area: tooling.priority:laterDeferred or speculative work.status:availableOpen and available for prioritization; not blocked or actively in progress.type:featureNew capability or product behavior.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions