Skip to content

feat(repo-cache): add approved private repository allowlist - #208

Merged
xnoto merged 1 commit into
mainfrom
agent/approved-private-repo-cache-v3
Sep 5, 2026
Merged

feat(repo-cache): add approved private repository allowlist#208
xnoto merged 1 commit into
mainfrom
agent/approved-private-repo-cache-v3

Conversation

@xnoto

@xnoto xnoto commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the owner-approved agent-knowledge and channel-project repositories to the internal, read-only repository cache. Each uses a credentialed git-sync v4.7.1 container, while public automatic discovery remains credential-free and public-only.

Fixes #

None — owner-approved repository-cache access change.

Type of change

  • Bug fix
  • Feature / enhancement
  • Documentation
  • Infrastructure (OpenTofu root or module)
  • GitOps desired state (manifests, kustomize, charts, SOPS/KSOPS secrets)
  • Container image
  • CI / reusable workflow
  • Refactor / cleanup
  • Breaking change

Validation

  • Required pull-request checks pass — test run 33945440569 passed.
  • Generated or centrally distributed files were regenerated by their owning automation, not hand-edited — no generated files changed.
  • Manual diff review: the existing encrypted GitHub-token Secret is only referenced by name/key and mounted read-only in the two private git-sync containers; no encrypted value was read, decrypted, or changed.

No local Kubernetes, Kustomize, SOPS, OpenTofu, or live-system operation was run or claimed. CI is the validation authority.

Impact and rollout

Producer: the existing mcp-makeitwork-github-token Secret is the only credential reference. Its encrypted source is unchanged. GitHub currently reports exactly two private, non-archived organization repositories: agent-knowledge and channel-project, both with main as their default branch.

Consumer: the existing repo-cache-sync Deployment writes the two cache roots to the existing mcp-repo-cache PVC; the unchanged internal repo-search MCP backend continues to mount that PVC read-only. The MCP tool filter, endpoint exposure, OpenCode chart, public automatic discovery, and all public cache sources are unchanged.

Delivery stages: this PR authors GitOps desired state only. After an explicitly approved merge, main CI must pass and the sync workflow may submit the tested revision to Argo CD. Verify the mcp-gateway Application, the two new git-sync containers, /repos/{agent-knowledge,channel-project}/current, and the internal repo-search response separately. Nothing here proves reconciliation, health, or functional cache reads.

Rollback: remove the owner-approved private allowlist through a reviewed GitOps PR. Do not patch the Deployment or PVC live.

Safety and secrets

  • Contains no plaintext secrets, decrypted SOPS values, state files, kubeconfigs, tokens, or private endpoints.
  • No local OpenTofu init/plan/apply/destroy/import/state operations were run or claimed — plans come from pull-request checks.
  • Breaking or irreversible effects are described above with rollback notes.

GitHub Advanced Security secret scanning is unavailable for this repository; the diff was manually inspected. AI-assisted change: an OpenCode agent materially produced this change; reviewers should verify the approved private-repository scope, read-only Secret mount, and preserved public-only discovery boundary before merging.

Extend the repo-cache-sync Deployment with two credentialed git-sync
v4.7.1 containers, sync-agent-knowledge (probe 9831) and
sync-channel-project (probe 9832), cloning the only two private,
non-archived makeitworkcloud repositories (verified 2026-09-05, both
default branch main) at HEAD, depth 1, 120s period, max-failures -1,
group-write, into the existing mcp-repo-cache PVC behind the unchanged
read-only repo-search backend. Authentication uses git-sync v4's
documented --username=x-access-token and
--password-file=/etc/git-secret/github_token; the existing
SOPS-encrypted Secret mcp-makeitwork-github-token is mounted read-only
at /etc/git-secret in those two containers only. The encrypted Secret
source was never decrypted, read, or modified.

The Kustomize inline resource-null patch lists both new containers so
the single-node no-resources policy stays consistent. Comments and
docs that called the cache public-only or excluded
agent-knowledge/channel-project now distinguish the public-only
automatic discovery design from this explicit owner-approved private
allowlist. The repo-search tool filter and external exposure are
unchanged, and this branch push opens no pull request, merges nothing,
dispatches no workflow, and syncs or deploys nothing.
@xnoto
xnoto requested a review from a team as a code owner September 5, 2026 04:45
@xnoto
xnoto merged commit d757db1 into main Sep 5, 2026
2 checks passed
@xnoto
xnoto deleted the agent/approved-private-repo-cache-v3 branch September 5, 2026 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant