Skip to content

ci: add GitHub Actions CI workflow with lint, test, and image build#1

Merged
drew merged 15 commits intomainfrom
dn/ci-tests
Feb 27, 2026
Merged

ci: add GitHub Actions CI workflow with lint, test, and image build#1
drew merged 15 commits intomainfrom
dn/ci-tests

Conversation

@drew
Copy link
Copy Markdown
Collaborator

@drew drew commented Feb 27, 2026

Summary

  • Adds .github/workflows/ci.yml with lint, rust-test, python-test, and CI image build jobs
  • Adds build/scripts/ci-image.sh for local + CI docker image builds
  • Adds docker:buildx:setup mise task for multi-arch remote BuildKit configuration
  • Updates docker:build:ci mise task to use the new script

@drew drew force-pushed the dn/ci-tests branch 3 times, most recently from 2698555 to bda31e5 Compare February 27, 2026 07:42
drew added 3 commits February 27, 2026 09:44
…action

Use docker/setup-buildx-action@v3 wrapped in a local composite action
to create the multi-arch remote BuildKit builder. This ensures automatic
cleanup of builder nodes when the job finishes, preventing leaked
BuildKit instances on self-hosted runners.
Declare the ARG before mise install so authenticated GitHub API
requests avoid rate limits when fetching tool versions.
@drew drew merged commit 7e7e84e into main Feb 27, 2026
3 checks passed
@drew drew deleted the dn/ci-tests branch February 27, 2026 18:10
TylerBarkley added a commit to TylerBarkley/OpenShell that referenced this pull request Mar 24, 2026
Implement the final integration for GPU passthrough support:
- Add put_vfio_device() API function for PUT /vfio/{device_id}
- Wire prepare_gpu_attachment() into do_create_inner()
- Enable supports_gpu in Firecracker capabilities
- Update spec compatibility checks and tests

This completes blockers NVIDIA#1 (GPU attachment not wired) and NVIDIA#2
(VFIO device attachment API not implemented).

Signed-off-by: OpenCode Agent <opencode@nvidia.com>
factory-octavian pushed a commit to factory-octavian/OpenShell that referenced this pull request Mar 31, 2026
…DIA#5)

- Add SPDX copyright header to .github/workflows/dco.yml
- Add DCO sign-off requirement section to CONTRIBUTING.md
- Create THIRD-PARTY-NOTICES with all third-party dependencies
- Include .github/ in license header CI check scope
@mjamiv mjamiv mentioned this pull request Apr 6, 2026
2 tasks
ben-alkov pushed a commit to ben-alkov/OpenShell that referenced this pull request Apr 13, 2026
feat(podman): add Podman support as alternative container runtime
ben-alkov pushed a commit to ben-alkov/OpenShell that referenced this pull request Apr 13, 2026
docs(podman): Add macOS installation guide and Podman build compatibility
mrunalp added a commit to mrunalp/OpenShell that referenced this pull request Apr 18, 2026
1. Separate client_id from audience (Critical/High, findings NVIDIA#1/NVIDIA#3):
   - Add oidc_audience field to GatewayMetadata separate from oidc_client_id
   - Bootstrap stores client_id and audience independently
   - Fixes the conflation that made the docs overstate provider portability

2. Skip list risk documentation (Critical, finding NVIDIA#2):
   - The skip list is by design for sandbox supervisor RPCs which use
     SSH handshake secrets. Noted for future hardening with per-sandbox
     credentials.

3. Reject partial-empty RBAC config (Medium, finding NVIDIA#4):
   - AuthzPolicy::validate() rejects configs where only one of
     admin_role/user_role is set
   - Server validates at startup before accepting requests
   - Prevents silently opening admin endpoints to any authenticated user

4. Preserve refresh token on refresh (Medium, finding NVIDIA#5):
   - oidc_refresh_token() keeps the old refresh_token when the server
     doesn't return a new one, per OAuth 2.0 spec

5. Additional concerns:
   - Percent-decode callback query parameters (code, state, error)
   - Drop scope=openid from client_credentials flow
   - Use /dev/urandom for PKCE verifier/state on Unix
   - Validate discovery issuer matches configured issuer (both server
     and CLI) to prevent SSRF/misdirection
   - Wire RBAC config (rolesClaim, adminRole, userRole) through Helm
     values and statefulset template
mrunalp added a commit to mrunalp/OpenShell that referenced this pull request Apr 18, 2026
1. Critical: sandbox RPCs now require x-sandbox-secret header (NVIDIA#1):
   - Split skip list into unauthenticated (health/reflection) and
     sandbox-secret (supervisor RPCs) categories
   - Sandbox RPCs require x-sandbox-secret header matching the server's
     SSH handshake secret
   - Sandbox gRPC client injects the secret via SandboxSecretInterceptor
   - Unauthenticated network callers can no longer reach sandbox RPCs

2. High: complete client_id vs audience separation (NVIDIA#2):
   - Add --oidc-audience flag to gateway add (separate from --oidc-client-id)
   - Store oidc_audience in gateway metadata independently
   - Thread audience through bootstrap metadata correctly

3. Medium: propagate RBAC settings through bootstrap (NVIDIA#3):
   - Add oidc_roles_claim, oidc_admin_role, oidc_user_role to DeployOptions
   - Pass OIDC_ROLES_CLAIM, OIDC_ADMIN_ROLE, OIDC_USER_ROLE env vars
     through Docker container → cluster-entrypoint.sh → HelmChart manifest
   - Full provider-neutral RBAC config now works via gateway start

4. Low: cross-platform CSPRNG (NVIDIA#4):
   - Replace /dev/urandom + RandomState fallback with getrandom crate
   - Works correctly on all platforms (Linux, macOS, Windows)
mrunalp added a commit to mrunalp/OpenShell that referenced this pull request Apr 18, 2026
1. High: UpdateConfig dual-auth for sandbox policy sync (NVIDIA#1):
   - Add DUAL_AUTH_METHODS list for RPCs that accept either Bearer
     token (CLI users) or sandbox secret (supervisor)
   - UpdateConfig now works for both CLI policy mutations and
     sandbox startup policy sync in OIDC deployments

2. Medium: end-to-end client_id vs audience separation (NVIDIA#2):
   - Thread optional audience parameter through oidc_browser_auth_flow
     and oidc_client_credentials_flow
   - gateway login reads oidc_audience from metadata and passes it
     to the auth/token requests
   - Adds audience parameter to authorization URL for providers
     that require it (Entra ID)

3. Medium: gateway start exposes full OIDC RBAC config (NVIDIA#3):
   - Add --oidc-client-id, --oidc-roles-claim, --oidc-admin-role,
     --oidc-user-role flags to gateway start
   - Thread all values through gateway_admin_deploy into DeployOptions
   - Stop hardcoding "openshell-cli" as client_id in bootstrap metadata
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