Skip to content

feat(studio): add GitHub CI/CD delivery for Studio-generated agents - #815

Open
CatherineKu wants to merge 4 commits into
volcengine:mainfrom
CatherineKu:feat/studio-github-cicd
Open

feat(studio): add GitHub CI/CD delivery for Studio-generated agents#815
CatherineKu wants to merge 4 commits into
volcengine:mainfrom
CatherineKu:feat/studio-github-cicd

Conversation

@CatherineKu

Copy link
Copy Markdown

Adds a GitHub-backed continuous delivery path for Studio-generated Agent
projects. Instead of pushing images directly, Studio can now open (or update)
a pull request in the user's GitHub repo carrying the generated Agent source,
and bind that pipeline to an AgentKit Runtime.

The existing veadk pipeline command assumes a specific Volcengine account
and region (hardcoded CR instance name, VPC tunnel region, and template image),
so it is not portable across accounts. This PR introduces a GitHub-PR-centric
flow driven only by a repo URL + token, keeping delivery in the user's own
repository and CI.

Changes

Backend

  • New veadk github-cicd-pipeline CLI command
    (veadk/cli/cli_github_cicd_pipeline.py): takes --github-url,
    --github-branch, --github-token, --project-json, --region.
  • New orchestration module veadk/cli/github_cicd.py:
    • Parses GitHub HTTPS/SSH URLs, validates repo access.
    • Creates/reuses a studio/<agent> branch, commits the project files,
      and creates or updates the PR.
    • Runtime binding + config re-sync (bind / sync), with pipeline state
      persisted under ~/.veadk/github-cicd-pipelines.json.
    • Credentials are redacted from all error/log output.
  • New Studio APIs in veadk/cli/cli_frontend.py:
    • POST /web/github-cicd/pipelines
    • GET/POST /web/github-cicd/runtime-binding
    • POST /web/github-cicd/runtime-sync

Frontend

  • New GithubCicdPanel in Studio project preview, with API client wrappers.
  • Rebuilt static assets under veadk/webui/.

Tests

  • Backend tests: tests/cli/test_github_cicd.py
  • Frontend test: frontend/tests/githubCicdPanel.test.mjs

Notes

  • Guardrails on project payload: max 800 files, 2 MB/file, 25 MB total.
  • The frontend build output (veadk/webui/) is committed separately as a
    chore commit.

How to test

veadk github-cicd-pipeline \
  --github-url https://github.com/<owner>/<repo> \
  --github-branch main \
  --github-token <token> \
  --project-json ./project.json

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