Conversation
fc75df7 to
20b008e
Compare
introduce opencode feature with metadata, docs, and install script to bundle the open source coding agent. add scenario and CLI smoke test to validate opencode usage. extend CI matrices so opencode builds alongside atlas and starship. Signed-off-by: Svetlin Ralchev <iamralch@users.noreply.github.com>
20b008e to
8a17237
Compare
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.
1. High-Level Summary
What changed: A new devcontainer feature called "opencode" has been added
to the collection, enabling automated installation of the OpenCode CLI (an
open source coding agent) in development containers.
Why it changed: This addition expands the devcontainer features collection
to include OpenCode, allowing developers to easily provision development
environments with the OpenCode coding agent pre-installed via a simple
feature declaration.
2. Detailed Technical Breakdown
2.1 Behavior & Execution Flow
When a devcontainer includes this feature, the installation script:
ca-certificates,curl)https://opencode.ai-yflag ensures non-interactive installation2.2 Key Modifications
New files added:
src/opencode/devcontainer-feature.json- Feature manifest definingmetadata, version (0.0.1), and configurable options
src/opencode/install.sh- Shell script handling dependency installationand OpenCode CLI setup
src/opencode/README.md- Documentation with usage examples and optionstest/opencode/scenarios.json- Empty test scenarios configurationtest/opencode/test.sh- Verification test checking CLI availabilityCI pipeline updates:
opencodeto the feature matrix in both test and release jobswithin
.github/workflows/ci.yaml2.3 Design Considerations
features (atlas, starship) with identical file organization
ca-certificatesandcurlasprerequisites, keeping the footprint small
versionoption defaulting to "latest",though the installer script currently ignores non-latest versions
common-utilsviainstallsAfterto ensure base utilities are available2.4 Assumptions & Edge Cases
apt-get, limiting support to Debian-baseddistributions
VERSIONvariable is unset when "latest"but the curl command doesn't pass any version parameter to the installer
CLI" which should read "Install OpenCode CLI"
opecode:1instead ofopencode:13. Impact Assessment
Functionality:
Adds a new installable feature to the devcontainer collection, expanding
available tooling options for developers.
Performance:
No impact on existing features. Installation adds minimal overhead (two small
packages plus the OpenCode binary).
Reliability & correctness:
The test verifies basic CLI availability by checking help output. The empty
scenarios.jsonsuggests no additional test scenarios are configured.Security:
Executes a remote script via
curl | shpattern. Users implicitly trustthe
opencode.aidomain and its HTTPS certificate chain.Developer experience & maintainability:
Follows established patterns in the repository, making maintenance
straightforward. CI integration ensures the feature is tested against
Debian and Ubuntu base images.
Users or downstream systems:
Developers can now add OpenCode to devcontainers with a single feature
declaration, streamlining environment setup for teams using this coding agent.