Skip to content

Derive and validate the cloud repository identity #1034

Description

@alexhraber

Context

The v0.83.0 Propodus client accepts cloud.repo_id from configuration. For dogfooding, repository identity must be tied to the actual GitHub repository rather than an arbitrary string supplied by a project file.

Goal

Derive and validate the canonical repository identity used for the initial Propodus cloud call.

Scope

  • Resolve the current repository’s canonical GitHub owner/name and immutable repository identity from its configured remote or an explicit authenticated resolver.
  • For the initial dogfood rollout, require the repository to be DecapodLabs/decapod before selecting the cloud backend.
  • Fail closed with an actionable configuration/authorization error for another repository; do not send a caller-selected repo_id to Propodus as if it were verified identity.
  • Keep the resolver provider-agnostic enough for the future, but do not broaden the initial production allowlist.
  • Keep fork identity distinct: a fork remains a separate solo repository and does not inherit the organization’s cloud slice.

Acceptance criteria

  • The Decapod repository resolves to DecapodLabs/decapod in the dogfood fixture.
  • A renamed, missing, ambiguous, or non-GitHub remote produces a clear preflight error.
  • A different repository cannot accidentally address the DecapodLabs organization slice.
  • The immutable repository identity is available to the Propodus request path.
  • Tests cover remote parsing, canonicalization, allowlist failure, and fork separation.

Metadata

Metadata

Assignees

Labels

archArchitectural changes and decompositionfeatureNew functionality or enhancementpropodustestsTesting improvements or additions

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions