Skip to content

feat(dstackup): support configurable release API#805

Merged
kvinwang merged 3 commits into
masterfrom
feat/dstackup-release-api
Jul 21, 2026
Merged

feat(dstackup): support configurable release API#805
kvinwang merged 3 commits into
masterfrom
feat/dstackup-release-api

Conversation

@kvinwang

Copy link
Copy Markdown
Collaborator

Summary

  • add a global --release-api-base-url option used by both dstackup image pull and install-time automatic image downloads
  • preserve the existing version-to-repository routing while allowing plain HTTP proxies and local test servers
  • add a GitHub Releases API overlay mock that publishes local assets and relays missing requests upstream
  • document the local publish and pull workflow

Testing

  • cargo fmt --check
  • cargo test -p dstackup --quiet
  • python3 -m py_compile tools/mock-github-releases.py
  • end-to-end local publish, SHA-256 verification, extraction, explicit-version pull, and latest-version pull

Copilot AI review requested due to automatic review settings July 21, 2026 04:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a configurable “GitHub-compatible Releases API base URL” to dstackup, so both dstackup image pull and install-time automatic image downloads can be exercised against an HTTP proxy or local test server. It also introduces a small local overlay server to publish/serve release assets while relaying cache misses to the real GitHub API, plus documentation for the workflow.

Changes:

  • Add global --release-api-base-url and thread it through install and image pull release lookups.
  • Update release-lookup URL construction to use the configured API base (including new unit test coverage for trailing slash handling).
  • Add tools/mock-github-releases.py and a doc guide for locally publishing and pulling test releases.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tools/mock-github-releases.py New local GitHub Releases API overlay for publishing local assets and relaying upstream requests.
dstack/crates/dstackup/src/main.rs Plumbs the global release API base URL into install and image subcommands.
dstack/crates/dstackup/src/install.rs Passes the release API base URL into install-time image resolution/pull logic.
dstack/crates/dstackup/src/image.rs Uses the configured base URL for tagged/latest release API calls and extends tests.
dstack/crates/dstackup/src/cli.rs Introduces the global --release-api-base-url flag and default value.
docs/testing-dstackup-image-pull.md Documents running the mock server, publishing a local release, and pulling via the custom base URL.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/mock-github-releases.py Outdated
Comment thread dstack/crates/dstackup/src/cli.rs Outdated
Comment thread dstack/crates/dstackup/src/image.rs Outdated
Comment thread dstack/crates/dstackup/src/image.rs
Comment thread tools/mock-github-releases.py
@kvinwang
kvinwang merged commit 6944db8 into master Jul 21, 2026
15 checks passed
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.

2 participants