Skip to content

Conversation

@arnab2001
Copy link

Description

Core command logic now lives in a new pkg/kit library with public option/result structs so other Go programs can call Kit operations directly. Each Cobra command became a thin shim that parses flags, builds the corresponding kit options, and delegates to the library, eliminating the old per-command helper files. Shared pieces like network handling and doc guidance were realigned to match the new API, leaving CLI behaviour unchanged while enabling reuse from Go code.

updated docs to explain how to use the library, and verified the CLI still behaves the same with go test ./... plus manual pack/list/info/unpack smoke tests.

Testing

  • go test ./...
  • KITOPS_HOME=$(mktemp -d) ./kit list
  • KITOPS_HOME=$(mktemp -d) ./kit pack "$CTX_DIR" -t localhost/sample:latest
  • KITOPS_HOME=$(mktemp -d) ./kit info localhost/sample:latest
  • KITOPS_HOME=$(mktemp -d) ./kit unpack localhost/sample:latest --dir "$UNPACK_DIR"

Linked issues

Closes #905

AI-Assisted Code

  • This PR contains AI-generated code that I have reviewed and tested
  • I take full responsibility for all code in this PR, regardless of how it was created

- expose the CLI functionality via `pkg/kit` so other Go apps can call it directly
- refactor the command shims to delegate into that package without changing user-facing behaviour
- update docs/tests to reflect the new public APIs

- go test ./...
- KITOPS_HOME=$(mktemp -d) ./kit list
- KITOPS_HOME=$(mktemp -d) ./kit pack "$CTX_DIR" -t localhost/sample:latest
- KITOPS_HOME=$(mktemp -d) ./kit info localhost/sample:latest
- KITOPS_HOME=$(mktemp -d) ./kit unpack localhost/sample:latest --dir "$UNPACK_DIR"

Signed-off-by: Arnab Chatterjee <[email protected]>

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Tue Nov 4 00:09:11 2025 +0530
#
# On branch Expose-kit-library-API
# Your branch and 'origin/Expose-kit-library-API' have diverged,
# and have 1 and 1 different commits each, respectively.
#
# Changes to be committed:
#	new file:   kitops
#	modified:   pkg/cmd/info/cmd.go
#	deleted:    pkg/cmd/info/info.go
#	modified:   pkg/cmd/inspect/cmd.go
#	deleted:    pkg/cmd/inspect/inspect.go
#	modified:   pkg/cmd/list/cmd.go
#	deleted:    pkg/cmd/list/list.go
#	deleted:    pkg/cmd/list/remote.go
#	modified:   pkg/cmd/login/cmd.go
#	deleted:    pkg/cmd/login/login.go
#	modified:   pkg/cmd/logout/cmd.go
#	deleted:    pkg/cmd/logout/logout.go
#	modified:   pkg/cmd/pull/cmd.go
#	deleted:    pkg/cmd/pull/pull.go
#	modified:   pkg/cmd/push/cmd.go
#	deleted:    pkg/cmd/push/push.go
#	modified:   pkg/cmd/remove/cmd.go
#	deleted:    pkg/cmd/remove/remote.go
#	deleted:    pkg/cmd/remove/remove.go
#	modified:   pkg/cmd/tag/cmd.go
#	deleted:    pkg/cmd/tag/tag.go
#	modified:   pkg/cmd/unpack/cmd.go
Copy link
Contributor

@amisevsk amisevsk left a comment

Choose a reason for hiding this comment

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

This PR drops 936 lines from the codebase and includes an 18 MB binary file. I think you may have made some errors with commits.

@arnab2001
Copy link
Author

@amisevsk , i messed it up while trying to fix signoff or something , i will get it fixed

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.

Expose core Kit CLI functionality as a reusable Go library

2 participants