From 24de741960866fcfe14f779db21fb4576c79c5c4 Mon Sep 17 00:00:00 2001 From: LongYinan Date: Fri, 26 Jun 2026 18:01:40 +0800 Subject: [PATCH] docs: correct Deploy-on-GitHub connect flow + deploy-token TTL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GitHub Actions deploy path is connected via `void github connect --repo --executor github_actions`, not "the Void dashboard" — there is no dashboard connect flow, and the default `container` executor 401s the OIDC exchange (auth-oidc.ts gates on build_executor === 'github_actions'). Also clarify the scoped deploy token TTL is plan-sized (~15 min on free, capped ~60 min), not a flat 15 minutes. Co-Authored-By: Claude Opus 4.8 --- docs/guide/deployment.md | 4 ++-- docs/reference/cli.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guide/deployment.md b/docs/guide/deployment.md index 846c21bb8..259b8e502 100644 --- a/docs/guide/deployment.md +++ b/docs/guide/deployment.md @@ -66,7 +66,7 @@ If your CI pipeline runs typechecking or other static analysis before deploy, ru You can deploy from a GitHub repo on every push to `main`. Running `void init --github` generates `.github/workflows/void-deploy.yml` in your project. -The workflow authenticates with [GitHub OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) — there is **no long-lived `VOID_TOKEN` secret to store or rotate**. The job requests a short-lived OIDC token from GitHub, exchanges it at `POST $VOID_API_URL/auth/github-oidc` for a project-scoped deploy token (valid ~15 minutes), then runs `void deploy --project `: +The workflow authenticates with [GitHub OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) — there is **no long-lived `VOID_TOKEN` secret to store or rotate**. The job requests a short-lived OIDC token from GitHub, exchanges it at `POST $VOID_API_URL/auth/github-oidc` for a short-lived project-scoped deploy token (about 15 minutes on the free tier; longer on higher plans, capped at ~60 minutes), then runs `void deploy --project `: ```yaml name: Deploy to Void @@ -113,7 +113,7 @@ jobs: run: npx void deploy --project "$VOID_PROJECT" ``` -Connect the repository to your project once in the Void dashboard to authorize it. The exact steps vary by package manager (the scaffold detects pnpm, yarn, bun, or npm). The `VOID_PROJECT` value is baked in from your linked project when known; otherwise the workflow reads a `VOID_PROJECT` repository variable. To target staging, set a `VOID_API_URL` repository variable to `https://api.staging.void.cloud`. +Connect the repository to your project once with `void github connect --repo --executor github_actions` to authorize it. This GitHub Actions path requires the `github_actions` build executor — the default `container` executor will not work with this workflow. The exact steps vary by package manager (the scaffold detects pnpm, yarn, bun, or npm). The `VOID_PROJECT` value is baked in from your linked project when known; otherwise the workflow reads a `VOID_PROJECT` repository variable. To target staging, set a `VOID_API_URL` repository variable to `https://api.staging.void.cloud`. ## Other Targets diff --git a/docs/reference/cli.md b/docs/reference/cli.md index 4f4179b78..a9246e4e5 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -102,7 +102,7 @@ Use flags to run individual steps without prompts: Flags can be combined. When any flag is provided, only the specified steps run and interactive prompts are skipped. -The `--github` workflow uses GitHub OIDC: you connect the repository to your Void project once (in the dashboard), and pushes to `main` deploy automatically. There is no `VOID_TOKEN` secret to create or rotate. To target staging, set a `VOID_API_URL` repository variable to `https://api.staging.void.cloud`. +The `--github` workflow uses GitHub OIDC: you connect the repository to your Void project once with `void github connect --repo --executor github_actions` (see the GitHub section below), and pushes to `main` deploy automatically. There is no `VOID_TOKEN` secret to create or rotate. To target staging, set a `VOID_API_URL` repository variable to `https://api.staging.void.cloud`. For projects that already have `"extends"`, `void init --tsconfig` preserves the existing config and adds `./.void/tsconfig.json`. If the existing config defines `files` or `compilerOptions.paths`, Void also merges its generated declaration files and aliases into the root config because TypeScript replaces those fields across `extends` instead of deeply merging them.