Wire the action job path and demo-level E2E check - #566
Open
aimable100 wants to merge 16 commits into
Open
Conversation
…mo scenarios. The job infers github-triage from an issues event, exchanges the OIDC token, and delivers the warrant into the holder. The check table matches the isolated-gateway worker: allowed comment, cross-repo, tripwires, no envelope, no GitHub token.
… issue. The harness token stays in the gateway. The agent table still runs the demo denials, then the test checks that the authorized comment exists on the disposable issue.
…y hash. The socket path includes the run id so a later job cannot reuse it. Exchange applies the comment-body size CEL and the leaf binds the exact digest. Package tests now run on every pull request.
…tack. The action now posts one /v1/exchange model with holder proof, decodes the returned stack, and tears the holder down in a JavaScript post step so Cloud and self-hosted stay on the same client path.
Send task_binding without runner-supplied assurance, sign the shared compact commitment, and install the compatible Tenuo wheel on a clean runner.
--require-hashes was failing on SecretStorage because the lock was compiled for macOS only, which skipped the Tenuo wheel install in CI.
Clean-runner tests now install from vendor/ in a pristine venv, and conformance reads Cloud's ci_exchange_v1.json fixture instead of a second copy of the vectors.
The holder now grants through tenuo-core and marks the leaf terminal. Parent-only envelopes stay for signed denials, but the gateway refuses an allow unless the presented warrant is terminal and the comment digest matches the body it would post.
…all GitHub without a PAT. The concierge box loads app.pem from the mount, signs an App JWT, and mints an installation token in memory. Doctor, job summary, and a reusable agent workflow land in the same package so a partner can prove the install after the first comment.
Doctor already treats a 503 as a failed install. This makes that probe mean the receipt key and App JWT work, not only that the process started.
…ting a PEM. The command writes receipt.pem, copies a validated App key to app.pem, and prints only public hex. Existing mount files stay unless --force.
Compose no longer needs a local maturin artifact. linux/amd64 on Trixie matches the PyPI manylinux wheel; an optional file in docker/wheels/ still overrides.
--gateway-only checks /health, /ready, and fail-closed /v1/call. Audience and exchange probes wait until a policy is issued.
The command loads the gateway config, remaps --mount over the compose path, and runs the same self-test as /ready. It prints role and app_id, never a PEM.
…stMCP 3. The live box died on **kwargs tool registration. Catalog argument names are registered instead, fastmcp stays below 4, and the healthcheck probes /ready rather than /health.
Pin the action as four fields (gateway_url, exchange_url, audience, trusted_roots), resolve the action root from the script so a SHA checkout works, and keep a /v1/exchange integration test for stack, leaf, one GitHub call, root trust, revocation, and receipts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
github-triagefrom anissuesevent, calls/v1/exchange, and delivers the warrant into the holder.mcp_configstill has only the socket path and gateway URL.add_commentbody free (Pattern("*")) so the holder can bind the exact body per call.run_agent_tablereplays the isolated-gateway worker from tenuo-github-agentic-demo: allowed get/comment, different issue, GitLost, Gemini dispatch, Clinejection, unsafe path, workflow edit, omitted envelope, noGITHUB_TOKEN.Test plan
cd github-actions && python -m pytest -q(50 passed), includingtest_oidc_exchange_holder_and_demo_scenarios