Implement auto Big Bang checkout checks and updates
#48 (closed) adds in the ability for bbctl to clone Big Bang into the configuration directory for users who do not actively develop Big Bang. We want to make sure that this checkout doesn't become stale and out of date.
Acceptance Criteria
- Create a configuration for
bbctlto configure Big Bang checkout management - Support prompting for updates as well as automatically updating, both enabled by default if the checkout repo is the default, self-managed checkout (probably in the config directory). Otherwise, disable auto updating but leave prompts enabled.
On startup, similar to checking forbbctlupdates, attempt to see if the local check out ofBig Bangis out of date.- If it is, execute a
git fetchandgit pullon thecurrent branch when command requires themainbig-bang-repo(currently required by thecmd/deploypackage).Correctly handle local changes and prompt the user if there's issues.Display the output of thegit pullran on thebig-bang-repoin the configurations file. - Add this to the configuration init wizard
Summary
- Added in global configurations for
big bang repo skip auto updateand forbbctl version update check skipinstead of being implicitly implied as a config setting to manually add in - Added in both to config wizard, defaulting to false
Implemented call to git pull command on big bang repo configured and output using existing lipgloss color schema- Added check to big bang repo to applicable commands, which currently consists of the
deploypackage - Added in changes to the testing frameworks to work with the new logic
- Added tests for coverage of at least 90%+ for affected packages
Relevant logs/screenshots
The following should error out due to invalid big-bang-repo: path in /.bbctl/config.yaml:
$~/downloads/bbctl-app/bbctl$ make build
$~/downloads/bbctl-app/bbctl$ ./bin/bbctl deploy bigbang
Error: unable to update big bang repository checkout: error running update command: local checkout of Big Bang update resulted in error output, consider upgrading manually
Usage:
bbctl deploy bigbang [flags]
Examples:
# Deploy Big Bang to your cluster
bbctl deploy bigbang
# Deploy Big Bang with additional configurations for a k3d development cluster
bbctl deploy bigbang --k3d
# Deploy Big Bang with a helm overrides file. All arguments after -- are passed to the underlying helm command
bbctl deploy bigbang -- -f ../path/to/overrides/values.yaml
Flags:
--addon strings Enable this Big Bang addon in the deployment
-h, --help help for bigbang
--k3d Include some boilerplate suitable for deploying into k3d
Global Flags:
...
{"time":"2025-04-28T17:18:08.377833759-06:00","level":"ERROR","source":{"function":"main.injectableMain","file":"/home/darrienlee/downloads/bbctl-app/bbctl/main.go","line":225},"msg":"error executing command: unable to update big bang repository checkout: error running update command: local checkout of Big Bang update resulted in error output, consider upgrading manually"}
The following is using valid big-bang-repo, error is due to not being config'd into a cluster, meaning it got past the big bang checkout step noted by the second log:
$~/downloads/bbctl-app/bbctl$ ./bin/bbctl deploy bigbang
{"time":"2025-04-28T17:19:09.595617582-06:00","level":"INFO","msg":"INFO Local checkout of Big Bang already up to date"}
{"time":"2025-04-28T17:19:09.596804317-06:00","level":"INFO","msg":"INFO preparing to deploy Big Bang to cluster, k3d=false"}
Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused
Error: error running deploy command: exit status 1
Usage:
bbctl deploy bigbang [flags]
Examples:
# Deploy Big Bang to your cluster
bbctl deploy bigbang
# Deploy Big Bang with additional configurations for a k3d development cluster
bbctl deploy bigbang --k3d
# Deploy Big Bang with a helm overrides file. All arguments after -- are passed to the underlying helm command
bbctl deploy bigbang -- -f ../path/to/overrides/values.yaml
Flags:
--addon strings Enable this Big Bang addon in the deployment
-h, --help help for bigbang
--k3d Include some boilerplate suitable for deploying into k3d
Global Flags:
...
{"time":"2025-04-28T17:19:09.745800476-06:00","level":"ERROR","source":{"function":"main.injectableMain","file":"/home/darrienlee/downloads/bbctl-app/bbctl/main.go","line":225},"msg":"error executing command: error running deploy command: exit status 1"}
OLD:
- Added in global configurations for
big bang repo skip auto updateand forbbctl version update check skipinstead of being implicitly implied as a config setting to manually add in - Added in both to config wizard, defaulting to false
- Implemented call to git pull command on big bang repo configured and output using existing lipgloss color schema
Relevant logs/screenshots
$ make build ran right before these tests, config.yaml adjusted to comments on each command ran:

Edited by Darrien Lee