feat(cli): add registries create command#2874
Conversation
Adds a Claude Code / AI agent skill for the arcane-cli under skills/arcane-cli/SKILL.md. Installable via: npx skills add getarcaneapp/arcane@arcane-cli Covers: all CLI commands, JSON response shapes (wrapped vs flat), environment discovery, project env file security rules, global flags, common patterns, and known pitfalls (API key permissions, env ID usage). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds `arcane-cli registries create` with flags for url, username,
token, registry-type (generic/ecr), insecure, disabled, description,
and AWS ECR credentials.
Also fixes a bug in `registries update` where --password was sending
the wrong JSON key ("password" instead of "token"), causing token
updates to be silently ignored.
Updates skills/arcane-cli/SKILL.md with the new command, flag table,
and examples for ghcr.io, Docker Hub, self-hosted, and ECR.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Huma validation requires insecure, awsAccessKeyId, awsSecretAccessKey, and awsRegion to be present in the request body even for generic registries. Send them unconditionally (empty string / false as defaults). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…abled The update command used cmd.Flags().Changed() with hardcoded true/false, so '--enabled=false' would still enable and '--disabled=false' would still disable — the opposite of what was requested. Use the flag values directly (registryUpdateEnabled / !registryUpdateDisabled); the mutual-exclusion guard already prevents both flags being set together. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@kmendell ready for review when you get a chance — adds the |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
you can remove this file since i made the updates skills repo for it
|
@kmendell friendly nudge on this one when you have a moment 🙏 For context — All checks are green, and I also fixed a pre-existing |
Summary
arcane-cli registries create— the only CRUD operation missing from the registries subcommandregistries update:--passwordwas sending{"password": ...}but the API expects{"token": ...}, so token updates via CLI were being silently ignoredskills/arcane-cli/SKILL.mdwith the new command, full flag table, and examples for ghcr.io, Docker Hub, self-hosted HTTP registries, and AWS ECRNew command
--urlghcr.io,docker.io--username--token--registry-typegenericgenericorecr--insecure--disabled--description--aws-access-key-id--aws-secret-access-key--aws-regionBug fix
registries update --passwordwas serialising to{"password": "..."}butUpdateContainerRegistryRequestexpects{"token": "..."}. Fixed to send the correct key; the flag name--passwordis preserved for backwards compatibility.Test plan
arcane-cli registries create --url ghcr.io --username user --token ghp_xxxcreates a registry and prints detailsarcane-cli registries create --url ghcr.io --username user --token ghp_xxx --jsonreturns JSONarcane-cli registries create(no--url) returns a usage errorarcane-cli registries update <id> --password newtokencorrectly updates the tokenarcane-cli registries create --registry-type ecr --aws-access-key-id ... --aws-secret-access-key ... --aws-region us-east-1 --url <ecr-url>creates an ECR registry🤖 Generated with Claude Code
Disclaimer Greptiles Reviews use AI, make sure to check over its work.
To better help train Greptile on our codebase, if the comment is useful and valid Like the comment, if its not helpful or invalid Dislike
To have Greptile Re-Review the changes, mention
greptileai.Greptile Summary
This PR adds the missing
registries createsubcommand and fixes a silent bug whereregistries update --passwordwas sending{"password": ...}instead of the{"token": ...}key the API expects, meaning token updates were silently dropped.registries createis added with full flag support (--url,--token,--username,--registry-type,--insecure,--disabled,--description, and AWS ECR fields);--urlis marked required.registries update --passwordnow correctly maps to{"token": ...}in the request body, matchingUpdateContainerRegistryRequest.skills/arcane-cli/SKILL.mdis added to document the full CLI command surface, including examples for ghcr.io, Docker Hub, self-hosted, and AWS ECR.Confidence Score: 3/5
Safe to merge after fixing the
--disabledflag inversion increateCmd.The
createCmdhas a flag-handling inversion: it testscmd.Flags().Changed("disabled")instead of readingregistryCreateDisableddirectly. A user who explicitly passes--disabled=falsewill get a registry created in the disabled state — the opposite of their intent. While unusual input, the new command path actively produces wrong data for it.cli/pkg/registries/cmd.go — specifically the
enabledfield construction increateCmd.Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "fix(cli): always send required fields in..." | Re-trigger Greptile