YT-22: Add write path and full read for project VCS integrations #68
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/project-vcs-crud-YT-22"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
YT-22: Add write path and full read for project VCS integrations
Restructures
yt project vcsfrom a flat read-only args struct into a subcommand group so the CLI covers the whole Version Control project-settings screen: full-fidelity read plus create / update / delete for Gitea/Forgejo processors.Surface
yt project vcs list <SHORT_NAME>adds anIDcolumn;--enabled-onlyand--jsonstill work.yt project vcs show <SHORT_NAME> <ID>prints every settings field (id, type, enabled, server url/id, path, branch specification, committers) as key-value or--json.yt project vcs add <SHORT_NAME> --server <URL> --path <owner/repo> [--branch-spec <spec>] [--disabled]creates a Gitea/Forgejo processor against an already-configured VCS server; an unknown--serverURL fails with a clear, non-leaking error.yt project vcs update <SHORT_NAME> <ID> [--enabled true|false] [--path ...] [--branch-spec ...]andyt project vcs delete <SHORT_NAME> <ID>select by server-side entity id; an unknown id returns a clear not-found error.--dry-runon add/update/delete prints the endpoint and payload without sending any request.Client layer
Widens the processor read selector to
id,$type,enabled,path,branchSpecification,committers,server(id,url)and surfaces those onVcsProcessor. Addsget_project_vcs_processor,resolve_vcs_server_id,create_project_vcs_processor,update_project_vcs_processor,delete_project_vcs_processor. The Project VCS surface and the mutation endpoints are undocumented; the assumed endpoint shapes are recorded in code comments next to each function (matching how the existing read selector is documented) and are to be revised if a server rejects them.addsupports Gitea/Forgejo only; other processor types and creating global VCS server entries are out of scope.Tests
wiremock unit tests per new client function (success, error-body passthrough, not-found), plus CLI subcommand-parse and dry-run-envelope tests.
cargo fmt --check,cargo clippy --all-targets -- -D warnings, andcargo test --all-targetsall pass.Docs and breaking change
README gains a Project VCS section and CLAUDE.md the status paragraph, both calling out the breaking change:
yt project vcs <SHORT_NAME>is nowyt project vcs list <SHORT_NAME>. Cargo.lock picks up the yt-cli0.4.0version the manifest already carried (the lock was stale from the Release v0.4.0 commit).Closes YT-22.
🤖 Generated with Claude Code