fabro/lib/components/fabro-github/src
Bryan Helmkamp 47954f731e
refactor(github): deduplicate additional-repository access plumbing
Consolidate the copies that review found across the feature:

- One GITHUB_CREDENTIAL_HELPER / GITHUB_CREDENTIAL_HELPER_KEY pair in
  fabro-github, with apply_probe_git_env() for probe commands; the runtime
  git bridge, server preflight probe, and live contract test all consume it
  so the probes exercise exactly what the bridge configures.
- GitHubRepositoryAccess::resolve_verified_token() owns the
  resolve-installations-then-mint choreography shared by server preflight,
  workflow initialization, and the live test.
- A shared lookup_installation() helper backs both the shared-installation
  resolution and the mint's installation lookup.
- The contents = read|write rule lives once as
  RunIntegrationsGithubSettings::contents_permission_allows_repository_access.
- The preflight probe paces retries with fabro-sandbox's exported
  replication_backoff() (3s/9s) instead of a contradicting 1s/2s loop, and
  shares one run_ls_remote() runner with the existing remote-ref check.

Also: collapse the dead Ok(None) arm and repeated error blocks in the
preflight token check, drop the derivable bridge_entry_count(), privatize
resolve_permissions() behind resolve_integration(), make
GitHubRepositorySlug ordering/hashing allocation-free, and use EnvVars
constants for env names.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 16:31:48 -04:00
..
testdata refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
access.rs refactor(github): deduplicate additional-repository access plumbing 2026-08-21 16:31:48 -04:00
lib.rs refactor(github): deduplicate additional-repository access plumbing 2026-08-21 16:31:48 -04:00
test_support.rs fix: harden GitHub token refresh handling 2026-08-20 19:56:06 -04:00
tests_mock.rs feat(github): mint one installation token for the effective repository set 2026-08-21 14:24:24 -04:00
token_source.rs feat(github): mint one installation token for the effective repository set 2026-08-21 14:24:24 -04:00