Skip to content

acq(msb): private GitHub repo clone (playbook kit) blocked by msb git-over-HTTPS secret substitution #203

Closed

Description

@mogul

Summary

On the msb backend, the agentic-coding-playbook kit's git clone of the
private GSA-TTS/agentic-coding-playbook repo is skipped: microsandbox 0.6.6
does not substitute the credential placeholder for git's HTTPS smart-transport
to github.com. The kit is non-fatal (warns and continues); every other msb
kit (usai-provider, git-ssh-sign, zscaler-ca-certificate) works, and the sbx
backend is unaffected.

This is the deferred item from the Phase 2 msb PR (see
docs/adr/0011-msb-backend-and-neutral-kits.md and
docs/BACKEND_GUIDE.md msb "Known limitations").

Evidence (verified on a KVM host, msb 0.6.6)

  • msb does substitute the placeholder on an Authorization: Bearer header
    to api.gsa.usai.gov and api.github.com (USAi path returns a real status;
    a curl bearer to api.github.com returns an authenticated response).
  • msb does not substitute for git's HTTPS clone to github.com: the request
    is blocked/unsubstituted regardless of:
    • request shape (info/refs GET with no body, or the git-upload-pack POST),
    • single vs multiple --secret bindings,
    • Authorization: Bearer $MSB_GITHUB_TOKEN header vs x-access-token:...@ URL,
    • HTTP/1.1 vs HTTP/2.
      Symptom: GnuTLS recv error (-110): TLS connection non-properly terminated
      or Empty reply from server (msb blocking the substitution), or a passthrough
      401 that makes git prompt for credentials.
  • --tls-intercept is enabled (required for substitution) and the interception
    CA is trusted in the guest (plain HTTPS to github.com returns 200).

Upstream references

What acq does today

  • Does not bind a GitHub --secret on msb (avoids #1170 and the git block).
  • Stores the GitHub token in the acq secret store for the sbx backend, which
    injects it transparently via its proxy (playbook clone works on sbx).
  • msb playbook kit warns and the sandbox comes up fully usable otherwise.

Resolution / triggers to pick this up

  • Re-test when a microsandbox release fixes git-over-HTTPS substitution
    (watch #756/#1170), then have the msb adapter bind GITHUB_TOKEN for the
    github hosts + configure the guest git clone to carry the placeholder header.
  • OR make the playbook repo readable without auth (public), which removes the
    need entirely.
  • OR ship a base image with the playbook pre-cloned.

Workarounds for users now

  • Use the sbx backend for the playbook kit.
  • Set ACQ_MSB_IMAGE to a base with the playbook pre-cloned.

AI-assisted (OpenCode). Deferred from the Phase 2 msb backend PR.

Activity

  1. mogul commented on Jul 16, 2026

    @mogul
    ContributorAuthor

    A PR that fixes the upstream problem in microsandbox is pending.

  2. mogul commented on Jul 17, 2026

    @mogul
    ContributorAuthor

    The upstream PR has been merged, but there's no release that includes it yet.

  3. mogul commented on Jul 23, 2026

    @mogul
    ContributorAuthor
  4. mogul commented on Jul 27, 2026

    @mogul
    ContributorAuthor

    0.6.7 was released! This is unblocked now.

  5. mogul commented on Jul 28, 2026

    @mogul
    ContributorAuthor

    Closed as of #230, now on main. Not yet in a tagged release.

  6. added a commit that references this issue on Aug 2, 2026
    32f9ae0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions