add git repo support for skill publish/pull#241
Merged
Conversation
Signed-off-by: Peter Jausovec <[email protected]>
Signed-off-by: Peter Jausovec <[email protected]>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds GitHub repository support to arctl skill publish (including a direct registration mode without local files) and extends arctl skill pull to pull from either Docker packages or GitHub repositories, aligning skills with the existing “agent publish” workflow.
Changes:
- Add
--github,--version, and--descriptiontoskill publish, with Docker/GitHub modes and a new direct registration path. - Update
skill pullto resolve a version and pull from either Docker image content or a GitHub repo/tree URL. - Add unit + e2e tests covering publish/pull behaviors and Docker extraction helpers.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/cli/commands_test.go | Updates CLI flag registration tests for the new skill publish flags and relaxed “required flag” behavior. |
| internal/cli/skill/pull.go | Adds version resolution + GitHub-repo pulling path alongside existing Docker pulling. |
| internal/cli/skill/pull_test.go | Adds unit tests for GitHub URL parsing, repo copying, version resolution, and pull routing behavior. |
| internal/cli/skill/publish.go | Adds --github publish mode, --version/--description, and direct registration (name-only) publish routing. |
| internal/cli/skill/publish_test.go | Adds extensive unit tests for folder-mode publish, GitHub publish, and direct registration mode. |
| internal/cli/common/docker/extract_test.go | Adds tests for Docker extraction helper behavior (skipping system dirs/empty files, preserving perms). |
| e2e/skill_publish_test.go | Adds e2e coverage for skill publish via GitHub and direct mode validation/dry-run. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Peter Jausovec <[email protected]>
timflannagan
reviewed
Mar 2, 2026
timflannagan
reviewed
Mar 2, 2026
timflannagan
reviewed
Mar 2, 2026
Signed-off-by: Peter Jausovec <[email protected]>
Signed-off-by: Peter Jausovec <[email protected]>
timflannagan
approved these changes
Mar 2, 2026
Collaborator
timflannagan
left a comment
There was a problem hiding this comment.
We can iterate here - lgtm for initial UX.
Signed-off-by: Peter Jausovec <[email protected]>
timflannagan
approved these changes
Mar 2, 2026
This was referenced Mar 3, 2026
christian-posta
pushed a commit
to christian-posta/agentregistry
that referenced
this pull request
Mar 9, 2026
# Description Skills could only be published from local folders containing a SKILL.md file with Docker packaging. Users needed the ability to publish skills directly from GitHub repositories — both with and without local files — matching the pattern already established by agent publish. Corresponding docs changes: agentregistry-dev/website#11 Changes: - Added `--github` flag to skill publish as an alternative to `--docker-url`, with mutual exclusivity enforced via Cobra - Added `--version` flag (required for `--github`, optional override for `--docker-url`) and `--description` flag for direct registration - Added direct registration mode: `arctl skill publish my-skill --github <url> --version 1.0.0` registers a skill by name without needing local files - `skill publish` now auto-detects whether the argument is a skill folder (with SKILL.md) or a skill name, routing to folder mode or direct mode accordingly - GitHub URLs support the full tree format (`https://github.com/owner/repo/tree/branch/path`) for specifying branch and subdirectory # Change Type ``` /kind feature ``` # Changelog ```release-note Add GitHub repository support for skill publish. Skills can now be published with `--github` as an alternative to `--docker-url`. A new direct registration mode allows publishing skills by name from a GitHub repository without requiring local files: `arctl skill publish my-skill --github <url> --version 1.0.0 --description "My skill"`. ``` --------- Signed-off-by: Peter Jausovec <[email protected]>
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.
Description
Skills could only be published from local folders containing a SKILL.md file with Docker packaging. Users needed the ability to publish skills directly from GitHub repositories — both with and without local files — matching the pattern already established by agent publish.
Corresponding docs changes: agentregistry-dev/website#11
Changes:
--githubflag to skill publish as an alternative to--docker-url, with mutual exclusivity enforced via Cobra--versionflag (required for--github, optional override for--docker-url) and--descriptionflag for direct registrationarctl skill publish my-skill --github <url> --version 1.0.0registers a skill by name without needing local filesskill publishnow auto-detects whether the argument is a skill folder (with SKILL.md) or a skill name, routing to folder mode or direct mode accordinglyhttps://github.com/owner/repo/tree/branch/path) for specifying branch and subdirectoryChange Type
Changelog