chore: add Copilot cloud-sandbox setup + dev container (hve-core-all) - #1
Merged
Merged
Conversation
Add a GitHub Copilot coding-agent sandbox and a matching dev container, both pre-installing the hve-core-all Copilot CLI plugin from github.com/microsoft/hve-core. - .devcontainer/setup-hve-core.sh: shared best-effort, idempotent, non-fatal installer for the Copilot CLI + hve-core-all plugin. - .github/workflows/copilot-setup-steps.yml: copilot-setup-steps job provisioning Terraform 1.9 / Python 3.12 / Node.js 22 + repo deps, then the plugin (continue-on-error). - .devcontainer/devcontainer.json: Ubuntu base with node/python/terraform/github-cli features; postCreate installs deps + plugin. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 95d118af-fbcc-4f46-8d9e-ce0aa6e40e70
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
Adds a GitHub Copilot cloud sandbox setup and a matching dev container, both pre-installing the
hve-core-allCopilot CLI plugin. Three new files only — no existing code touched..devcontainer/setup-hve-core.shhve-core-allplugin (set -euo pipefail, executable100755)..github/workflows/copilot-setup-steps.ymlcopilot-setup-stepsthat provisions runtimes + repo deps, then runs the installer (continue-on-error)..devcontainer/devcontainer.jsonpostCreateCommandinstalls deps then the plugin.Detected stack
1.9—infra/(matchesTF_VERSIONindeploy-infra.yml)3.12—data/generators/,simulator/(requirements.txt)22/ TypeScript5.6—streaming/(package-lock.json)src/notebooks/Third-party actions are SHA-pinned with
# vX.Y.Zcomments, reusing the exact SHAs already vetted in this repo (actions/checkout,actions/setup-python,actions/setup-node,hashicorp/setup-terraform). The workflow checks out withpersist-credentials: false, declarespermissions: contents: readat both workflow and job level, and bothpush/pull_requesttriggers are path-filtered to the workflow file itself.Build / test / lint commands (from Makefile & CI)
make setup→pip install -r data/generators/requirements.txt+cd streaming && npm installcd streaming && npm run build(tsc)cd streaming && npm test --if-presentmake lint→cd infra && terraform fmt -check -recursive+cd data/generators && python -m py_compile generate_all.pymake generate-dataThe sandbox installs Python deps (
data/generators+simulator) and runsnpm ciinstreaming, bothcontinue-on-error: true.✅ hve-core-all install result — SUCCESS (verified on a clean GitHub-hosted Ubuntu 24.04 runner)
The
copilot-setup-stepsworkflow ran green on this PR. Verbatim log from the "Install hve-core-all plugin" step (bash .devcontainer/setup-hve-core.sh) on a clean runner where the Copilot CLI was not preinstalled:The "Verify tools" step confirms the full toolchain + plugin:
No authentication was required —
npm install -g @github/copilot,copilot plugin marketplace add microsoft/hve-core, andcopilot plugin install hve-core-all@hve-coreall succeeded headlessly on the first run. Script exit code 0.Validation performed
copilot-setup-stepsworkflow (pull_request+push)actionlint v1.7.7on the workflowjq emptyondevcontainer.jsonrequire()parse ofdevcontainer.jsonbash -n+ LF line-endings onsetup-hve-core.sh100755hve-core-allinstallv3.3.101)devcontainer buildjq+ Node parse. (The same features/base image are standard devcontainer components.)Known non-blocking item (pre-existing, out of scope)
The "Install Node.js dependencies" step (
npm ciinstreaming/) exits 1 due to a pre-existing peer-dependency conflict instreaming/package.json— unrelated to this PR:This step is intentionally
continue-on-error: true, so it does not fail the job, and thehve-core-allinstall still runs and succeeds immediately afterward — demonstrating the best-effort / non-blocking design. Per the three-files-only scope, the repo'sstreamingdependency tree was not modified here (fixing it — e.g. bumpingts-node, or usingnpm ci --legacy-peer-deps— is a separate change).Notes
hve-core-allinstall is best-effort / non-blocking: every step is guarded so the sandbox and dev container start even if the plugin install fails.