Adds deployment access management features to the CLI#245
Adds deployment access management features to the CLI#245
Conversation
- Create internal/ui/ package with centralized Lipgloss styles (styles.go) - Add output helpers for consistent styling: Title, Box, Success, Dim, etc. - Implement Bubble Tea spinner with reference counting for async operations - Add GlobalSpinner singleton for seamless spinner across CLI lifecycle - Update PersistentPreRunE to show spinner during initialization - Migrate cre init and cre whoami to use shared UI package
- Add spinner during file generation (copying, generating templates, contracts) - Show spinner during Go dependencies installation - Display dependencies in styled box after spinner completes - Fix Next steps box spacing and formatting - Refactor initializeGoModule to return deps instead of printing
- Add styled template functions (styleTitle, styleSection, styleCommand, styleDim, styleSuccess, styleCode) - Update help template to use Lipgloss styling - Style section headers, command names, tips, and URLs - Improve visual hierarchy and readability
- Add complete Blocks palette constants (Gray, Blue, Green, Red, Orange, Yellow, Teal, Purple) - Use high-contrast colors for dark terminal readability - Style titles/commands with Blue 400-500 for visibility - Style secondary info with Gray 500 (dimmed) - Create custom Huh theme with Blocks colors for forms - Update spinner to use Blue 500
- Add styled title and welcome message using Chainlink theme
- Add Bubble Tea spinner with progress states throughout auth flow:
- Preparing authentication
- Opening browser
- Waiting for authentication
- Exchanging authorization code
- Saving credentials
- Show styled URL fallback when browser cannot open automatically
- Display success message with next steps in branded box
- Update spinner message during org membership retry flow
- Update tests to include spinner in handler instantiations
- Add SilenceErrors: true to root command to disable Cobra's default error output - Display all user-facing errors with styled ui.Error() in Execute() - Errors now show with red color and ✗ prefix consistent with Chainlink theme - Internal debug logging via zerolog remains unchanged
- Add SilenceErrors: true to disable Cobra's default error output - Display errors with styled ui.Error() (red with ✗ prefix) - Set SilenceUsage in PersistentPreRunE to hide usage for runtime errors - Keep usage/suggestions visible for command typos and flag errors
consistent styling across the CLI
- Replaced prompt.YesNoPrompt with huh.NewConfirm forms
- Removed stdin io.Reader parameter
2. Updated cmd/creinit/creinit.go:
- Updated call sites to match new function signatures
3. Updated cmd/secrets/common/handler.go:
- Replaced ~25 fmt.Print* calls with ui.* functions
4. Updated cmd/workflow/simulate/telemetry_writer.go:
- Replaced fmt.Printf with ui.Printf
- Removed unused fmt import
5. Deleted internal/prompt/ directory:
- Removed entire old promptui-based package
6. Cleaned cmd/common/utils.go:
- Removed unused MustGetUserInputWithPrompt function
- Removed unused bufio and errors imports
7. Dependencies cleaned (go mod tidy):
- Removed github.com/manifoldco/promptui
- Removed github.com/chzyer/readline
…2/deploy-request-refactor
…flict and visual display issue in verbose mode
…2/deploy-request-refactor
|
🚀 Preview Build Artifacts You can download the preview builds for this PR from the following URL: https://github.com/smartcontractkit/cre-cli/actions/runs/21761292603 Note: These are preview builds and are not signed. |
…rapper functions with functional options pattern:
- ui.Confirm(title, ...ConfirmOption) — yes/no prompt, with WithLabels() and WithDescription()
- ui.Input(title, ...InputOption) — single text input, with WithInputDescription() and
WithPlaceholder()
- ui.Select[T](title, options) — generic selection prompt using SelectOption[T]
- ui.InputForm(fields) — multi-field form using InputField structs (with validation, suggestions,
etc.)
- internal/ui/prompts_test.go — Unit tests for option functions and struct construction
…actkit/cre-cli into feature/charm-lib-refactoring
Co-authored-by: Tarcísio Zotelli Ferraz <tar-2008.ferraz@hotmail.com>
…2/deploy-request-refactor
|
| Version | Value |
|---|---|
| Current Fork | v1.16.0 |
| Latest Upstream | v1.17.0 |
Action Required
- Review abigen changes in upstream (only the
accounts/abi/binddirectory matters) - Compare with our fork in
cmd/generate-bindings/bindings/abigen/ - If relevant changes exist, sync them and update
FORK_METADATA.md - If no abigen changes, just update the version in
FORK_METADATA.mdtov1.17.0
Files to Review
cmd/generate-bindings/bindings/abigen/bind.gocmd/generate-bindings/bindings/abigen/bindv2.gocmd/generate-bindings/bindings/abigen/template.go
cc @smartcontractkit/bix-framework
|
🚀 Preview Build Artifacts You can download the preview builds for this PR from the following URL: https://github.com/smartcontractkit/cre-cli/actions/runs/22118512856 Note: These are preview builds and are not signed. |
|
| Version | Value |
|---|---|
| Current Fork | v1.16.0 |
| Latest Upstream | v1.17.0 |
Action Required
- Review abigen changes in upstream (only the
accounts/abi/binddirectory matters) - Compare with our fork in
cmd/generate-bindings/bindings/abigen/ - If relevant changes exist, sync them and update
FORK_METADATA.md - If no abigen changes, just update the version in
FORK_METADATA.mdtov1.17.0
Files to Review
cmd/generate-bindings/bindings/abigen/bind.gocmd/generate-bindings/bindings/abigen/bindv2.gocmd/generate-bindings/bindings/abigen/template.go
cc @smartcontractkit/bix-framework
|
🚀 Preview Build Artifacts You can download the preview builds for this PR from the following URL: https://github.com/smartcontractkit/cre-cli/actions/runs/22143213649 Note: These are preview builds and are not signed. |
Summary
Adds deployment access management features to the CLI, allowing users to check their access status and request deployment access directly from the command line.
cre account accesscommand to check status and request deployment accesscre whoamioutputcre workflow deploywithout accessNote: This PR is based on charm lib refactor branch - see PR
Changes
New Command:
cre account accessCRE_ZENDESK_USERNAMEandCRE_ZENDESK_PASSWORDenv vars for credentialsUpdated Commands
cre whoami: Now displaysDeploy Access: EnabledorDeploy Access: Not enabled (run 'cre account access' to request)cre workflow deploy: Checks access before deploying; prompts to request access if not enabledcre workflow simulate: Shows deploy access hint after successful simulation for gated usersRefactoring
internal/accessrequest/package with shared logic for access requestsGetDeploymentAccessStatus()method toCredentialsstruct for reusable access checkingCheckIsUngatedOrganization()to use the new methodHelp Updates
cre accountdescription to "Manage account and request deploy access"