Skip to content

ui: Allow skill publish without Docker image#251

Merged
timflannagan merged 2 commits intoagentregistry-dev:mainfrom
timflannagan:fix/ui-skill-publishing
Mar 3, 2026
Merged

ui: Allow skill publish without Docker image#251
timflannagan merged 2 commits intoagentregistry-dev:mainfrom
timflannagan:fix/ui-skill-publishing

Conversation

@timflannagan
Copy link
Copy Markdown
Collaborator

Description

Previously, the "Add Skill" dialog always required a Docker image and always sent a Docker package payload, even when a GitHub repository was provided.

Now we allow either source, require at least one, and only send Docker package metadata when an image is provided.

Fixes #250.

Change Type

/kind fix

Changelog

Fixed an issue in the UI skill publishing flow where a Docker image was incorrectly required even when publishing from a public GitHub repository. The form now accepts either a GitHub repository URL or a Docker image.

Additional Notes

Previously, the Add Skill dialog always required a Docker image and always sent a
Docker package payload, even when a GitHub repository was provided.

Now we allow either source, require at least one, and only send Docker package
metadata when an image is provided.

Signed-off-by: timflannagan <[email protected]>
Copilot AI review requested due to automatic review settings March 3, 2026 17:33
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the UI “Add Skill” dialog to support publishing a skill from a GitHub repository without requiring a Docker image, aligning the UI with backend support for non-containerized skills (Fixes #250).

Changes:

  • Validate that at least one source is provided (GitHub repository URL and/or Docker image).
  • Only include Docker package metadata in the request payload when a Docker image is provided.
  • Update the Docker image field UI to no longer appear required.

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

Comment on lines 177 to 189
<Label htmlFor="dockerImage">
Docker Image <span className="text-red-500">*</span>
Docker Image
</Label>
<Input
id="dockerImage"
placeholder="docker.io/username/my-skill:latest"
value={dockerImage}
onChange={(e) => setDockerImage(e.target.value)}
disabled={loading}
required
/>
<p className="text-xs text-muted-foreground">
Full Docker image identifier including registry, repository, and tag
Optional: Provide a Docker image for runtime distribution (not required for GitHub-only publish)
</p>
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

With the Docker Image asterisk removed, both “GitHub Repository URL” and “Docker Image” now look optional, but the submit validation requires at least one. Consider updating the helper text/label here to explicitly say “Provide either a GitHub repository URL or a Docker image” (and/or visually indicate the ‘one-of’ requirement) so users don’t only discover it after submitting.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Yeah agreed. I'll play around with better commentary options.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Actually it might be worth refactoring this UX a bit if those are mutual exclusive options. I'll look into that as well.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Updated to add a source type option. Tested locally that it works.
Screenshot 2026-03-03 at 12 42 58 PM

Previously, the Add Skill dialog rendered GitHub and Docker inputs together and
used one-of validation text, which was easy to misread as both fields being
optional.

Now the dialog uses an explicit publish source mode selector and renders only
the relevant required input for the selected mode, with mode-aligned payload
construction and validation.
@timflannagan timflannagan added this pull request to the merge queue Mar 3, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 3, 2026
@timflannagan
Copy link
Copy Markdown
Collaborator Author

pod/speaker-hpdws condition met
ipaddresspool.metallb.io/address-pool created
l2advertisement.metallb.io/advertisement created
make[1]: Leaving directory '/home/runner/work/agentregistry/agentregistry'
Switched to context "kind-arctl-e2e".
[e2e] 18:49:08 CI: patching kubeconfig to use Docker gateway 172.17.0.1
[e2e] 18:49:08 Step 2/5: Installing kagent...
[e2e] 18:49:08   Downloading kagent CLI...
Downloading https://cr.kagent.dev/v0.7.20/kagent-linux-amd64
Verifying checksum... SHA sum of /tmp/kagent-installer-OqSELi/kagent-linux-amd64 does not match. Aborting.
Failed to install kagent
	For support, go to https://github.com/kagent-dev/kagent.
[e2e] 18:49:27 Failed to download kagent: exit status 1
FAIL	github.com/agentregistry-dev/agentregistry/e2e	90.647s

DONE 0 tests, 1 failure in 90.647s
make: *** [Makefile:132: e2e] Error 1

@timflannagan timflannagan added this pull request to the merge queue Mar 3, 2026
Merged via the queue into agentregistry-dev:main with commit 0243bfa Mar 3, 2026
6 checks passed
@timflannagan timflannagan deleted the fix/ui-skill-publishing branch March 3, 2026 19:07
christian-posta pushed a commit to christian-posta/agentregistry that referenced this pull request Mar 9, 2026
<!--
Thanks for opening a PR! Please delete any sections that don't apply.
-->

# Description

<!--
A concise explanation of the change. You may include:
- **Motivation:** why this change is needed
- **What changed:** key implementation details
- **Related issues:** e.g., `Fixes agentregistry-dev#123`
-->

Previously, the "Add Skill" dialog always required a Docker image and
always sent a Docker package payload, even when a GitHub repository was
provided.

Now we allow either source, require at least one, and only send Docker
package metadata when an image is provided.

Fixes agentregistry-dev#250.

# Change Type

<!--
Select one or more of the following by including the corresponding
slash-command:
```
/kind breaking_change
/kind bump
/kind cleanup
/kind design
/kind deprecation
/kind documentation
/kind feature
/kind fix
/kind flake
/kind install
```
-->

/kind fix

# Changelog

<!--
Provide the exact line to appear in release notes for the chosen
changelog type.

If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
-->

```release-note
Fixed an issue in the UI skill publishing flow where a Docker image was incorrectly required even when publishing from a public GitHub repository. The form now accepts either a GitHub repository URL or a Docker image.
```

# Additional Notes

<!--
Any extra context or edge cases for reviewers.
-->

---------

Signed-off-by: timflannagan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skills need container images in the UI

3 participants