From fe4b05572789f928a0f7245f59be235d23266531 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 18 Feb 2026 11:54:20 -0500 Subject: [PATCH 01/11] Exit status for enqueued builds should be success, not failure. --- pkg/cmd/build.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/cmd/build.go b/pkg/cmd/build.go index 55f3f21..56e20a4 100644 --- a/pkg/cmd/build.go +++ b/pkg/cmd/build.go @@ -419,11 +419,10 @@ func handleBuildsCreate(ctx context.Context, cmd *cli.Command) error { } for _, target := range data.Get("targets.@values").Array() { - if target.Get("status").String() == "not_started" || - target.Get("commit.completed.conclusion").String() == "error" || + if target.Get("commit.completed.conclusion").String() == "error" || target.Get("lint.completed.conclusion").String() == "error" || target.Get("test.completed.conclusion").String() == "error" { - buildGroup.Error("Build did not succeed!") + buildGroup.Error("Build resulted in errors!") os.Exit(1) } } From 84c3559be8e2d3a322db4f72a4f77ffeee030d8c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 07:34:48 +0000 Subject: [PATCH 02/11] feat(api): add a super basic GET /v0/user endpoint --- .stats.yml | 8 +++---- pkg/cmd/cmd.go | 8 +++++++ pkg/cmd/user.go | 56 ++++++++++++++++++++++++++++++++++++++++++++ pkg/cmd/user_test.go | 17 ++++++++++++++ 4 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 pkg/cmd/user.go create mode 100644 pkg/cmd/user_test.go diff --git a/.stats.yml b/.stats.yml index 1ef41a0..7d8d633 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 21 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-acfed4185515b0f9bfdb9b080df219b3bea1069daeb722d589564aa7d8eb32e6.yml -openapi_spec_hash: 0fb1197c07e1f354f33d96c384e3ca3b -config_hash: eea7be44f19f72b6b9ae93f47dd63f79 +configured_endpoints: 22 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-bced6b6177fa276293bb8c54df90e10340f1b5dd92189225c53551d3952c091a.yml +openapi_spec_hash: ad0459eb77d77055a261721e087ed5da +config_hash: dd1ba7ad8271f1598e0ec411c3200851 diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index 2c6bf7c..90f6bf9 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -176,6 +176,14 @@ stl builds create --branch `, &lintCommand, + { + Name: "user", + Category: "API RESOURCE", + Suggest: true, + Commands: []*cli.Command{ + &userRetrieve, + }, + }, { Name: "@manpages", Usage: "Generate documentation for 'man'", diff --git a/pkg/cmd/user.go b/pkg/cmd/user.go new file mode 100644 index 0000000..1c9a49a --- /dev/null +++ b/pkg/cmd/user.go @@ -0,0 +1,56 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package cmd + +import ( + "context" + "fmt" + "os" + + "github.com/stainless-api/stainless-api-cli/internal/apiquery" + "github.com/stainless-api/stainless-api-go" + "github.com/stainless-api/stainless-api-go/option" + "github.com/tidwall/gjson" + "github.com/urfave/cli/v3" +) + +var userRetrieve = cli.Command{ + Name: "retrieve", + Usage: "Retrieve the currently authenticated user's information.", + Suggest: true, + Flags: []cli.Flag{}, + Action: handleUserRetrieve, + HideHelpCommand: true, +} + +func handleUserRetrieve(ctx context.Context, cmd *cli.Command) error { + client := stainless.NewClient(getDefaultRequestOptions(cmd)...) + unusedArgs := cmd.Args().Slice() + + if len(unusedArgs) > 0 { + return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) + } + + options, err := flagOptions( + cmd, + apiquery.NestedQueryFormatBrackets, + apiquery.ArrayQueryFormatComma, + EmptyBody, + false, + ) + if err != nil { + return err + } + + var res []byte + options = append(options, option.WithResponseBodyInto(&res)) + _, err = client.User.Get(ctx, options...) + if err != nil { + return err + } + + obj := gjson.ParseBytes(res) + format := cmd.Root().String("format") + transform := cmd.Root().String("transform") + return ShowJSON(os.Stdout, "user retrieve", obj, format, transform) +} diff --git a/pkg/cmd/user_test.go b/pkg/cmd/user_test.go new file mode 100644 index 0000000..8754ce6 --- /dev/null +++ b/pkg/cmd/user_test.go @@ -0,0 +1,17 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package cmd + +import ( + "testing" + + "github.com/stainless-api/stainless-api-cli/internal/mocktest" +) + +func TestUserRetrieve(t *testing.T) { + t.Skip("Prism tests are disabled") + mocktest.TestRunMockTestWithFlags( + t, + "user", "retrieve", + ) +} From 32adc53ab6a887ec86b39ca69111f741d533d095 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 20:38:39 +0000 Subject: [PATCH 03/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 7d8d633..7331f6f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 22 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-bced6b6177fa276293bb8c54df90e10340f1b5dd92189225c53551d3952c091a.yml openapi_spec_hash: ad0459eb77d77055a261721e087ed5da -config_hash: dd1ba7ad8271f1598e0ec411c3200851 +config_hash: c3e64d6d69fcc4fb22a312bc13bcb67a From a3ab921d6ed19120d0a7f0a37574c3476f9282a7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 21:38:11 +0000 Subject: [PATCH 04/11] feat(api): manual updates --- .stats.yml | 2 +- go.mod | 4 ++-- go.sum | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7331f6f..eb0eff6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 22 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-bced6b6177fa276293bb8c54df90e10340f1b5dd92189225c53551d3952c091a.yml openapi_spec_hash: ad0459eb77d77055a261721e087ed5da -config_hash: c3e64d6d69fcc4fb22a312bc13bcb67a +config_hash: 930aeeb7ff38238a72699b7e3313e8ae diff --git a/go.mod b/go.mod index a83fc30..281302e 100644 --- a/go.mod +++ b/go.mod @@ -15,13 +15,14 @@ require ( github.com/logrusorgru/aurora/v4 v4.0.0 github.com/muesli/reflow v0.3.0 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c - github.com/stainless-api/stainless-api-go v0.27.1 + github.com/stainless-api/stainless-api-go v0.28.0 github.com/stretchr/testify v1.11.1 github.com/tidwall/gjson v1.18.0 github.com/tidwall/pretty v1.2.1 github.com/tidwall/sjson v1.2.5 github.com/urfave/cli-docs/v3 v3.1.0 github.com/urfave/cli/v3 v3.6.2 + golang.org/x/mod v0.32.0 golang.org/x/sys v0.40.0 golang.org/x/term v0.39.0 golang.org/x/text v0.33.0 @@ -62,7 +63,6 @@ require ( github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/yuin/goldmark v1.7.16 // indirect github.com/yuin/goldmark-emoji v1.0.6 // indirect - golang.org/x/mod v0.32.0 // indirect golang.org/x/net v0.49.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 46af09d..b51974a 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/stainless-api/stainless-api-go v0.27.1 h1:HozHUev0ZLIHUKL/ttw9fWl5zGSNosYbsmT2JGxdT7c= -github.com/stainless-api/stainless-api-go v0.27.1/go.mod h1:vssVkp6bgBKxXtnvHVnQvGNMHbn36zdkz80NMHIgXKM= +github.com/stainless-api/stainless-api-go v0.28.0 h1:pwaka5itklHVwJOsp3E6pgOS9jumMfKpZvjUwWCfMMc= +github.com/stainless-api/stainless-api-go v0.28.0/go.mod h1:vssVkp6bgBKxXtnvHVnQvGNMHbn36zdkz80NMHIgXKM= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= From 60407467a68e98b08f9920479b3e012b45023690 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 22:18:40 +0000 Subject: [PATCH 05/11] chore(internal): remove mock server code --- scripts/mock | 41 ----------------------------------------- scripts/test | 46 ---------------------------------------------- 2 files changed, 87 deletions(-) delete mode 100755 scripts/mock diff --git a/scripts/mock b/scripts/mock deleted file mode 100755 index 0b28f6e..0000000 --- a/scripts/mock +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -if [[ -n "$1" && "$1" != '--'* ]]; then - URL="$1" - shift -else - URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" -fi - -# Check if the URL is empty -if [ -z "$URL" ]; then - echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" - exit 1 -fi - -echo "==> Starting mock server with URL ${URL}" - -# Run prism mock on the given spec -if [ "$1" == "--daemon" ]; then - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & - - # Wait for server to come online - echo -n "Waiting for server" - while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do - echo -n "." - sleep 0.1 - done - - if grep -q "✖ fatal" ".prism.log"; then - cat .prism.log - exit 1 - fi - - echo -else - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" -fi diff --git a/scripts/test b/scripts/test index 7383fc5..df2bd61 100755 --- a/scripts/test +++ b/scripts/test @@ -4,53 +4,7 @@ set -euo pipefail cd "$(dirname "$0")/.." -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color -function prism_is_running() { - curl --silent "http://localhost:4010" >/dev/null 2>&1 -} - -kill_server_on_port() { - pids=$(lsof -t -i tcp:"$1" || echo "") - if [ "$pids" != "" ]; then - kill "$pids" - echo "Stopped $pids." - fi -} - -function is_overriding_api_base_url() { - [ -n "${TEST_API_BASE_URL:-}" ] -} - -if ! is_overriding_api_base_url && ! prism_is_running ; then - # When we exit this script, make sure to kill the background mock server process - trap 'kill_server_on_port 4010' EXIT - - # Start the dev server - ./scripts/mock --daemon -fi - -if is_overriding_api_base_url ; then - echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" - echo -elif ! prism_is_running ; then - echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" - echo -e "running against your OpenAPI spec." - echo - echo -e "To run the server, pass in the path or url of your OpenAPI" - echo -e "spec to the prism command:" - echo - echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" - echo - - exit 1 -else - echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" - echo -fi echo "==> Running tests" go test ./... "$@" From 7b64f39fb5bede6621a07f6307d0a976073ab71e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 22:18:55 +0000 Subject: [PATCH 06/11] chore: update mock server docs --- pkg/cmd/build_test.go | 8 ++++---- pkg/cmd/builddiagnostic_test.go | 2 +- pkg/cmd/buildtargetoutput_test.go | 2 +- pkg/cmd/org_test.go | 4 ++-- pkg/cmd/project_test.go | 10 +++++----- pkg/cmd/projectbranch_test.go | 12 ++++++------ pkg/cmd/projectconfig_test.go | 4 ++-- pkg/cmd/user_test.go | 2 +- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pkg/cmd/build_test.go b/pkg/cmd/build_test.go index c15d734..3673424 100644 --- a/pkg/cmd/build_test.go +++ b/pkg/cmd/build_test.go @@ -10,7 +10,7 @@ import ( ) func TestBuildsCreate(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "create", @@ -55,7 +55,7 @@ func TestBuildsCreate(t *testing.T) { } func TestBuildsRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "retrieve", @@ -64,7 +64,7 @@ func TestBuildsRetrieve(t *testing.T) { } func TestBuildsList(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "list", @@ -77,7 +77,7 @@ func TestBuildsList(t *testing.T) { } func TestBuildsCompare(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "compare", diff --git a/pkg/cmd/builddiagnostic_test.go b/pkg/cmd/builddiagnostic_test.go index 85ab3a9..8602814 100644 --- a/pkg/cmd/builddiagnostic_test.go +++ b/pkg/cmd/builddiagnostic_test.go @@ -9,7 +9,7 @@ import ( ) func TestBuildsDiagnosticsList(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds:diagnostics", "list", diff --git a/pkg/cmd/buildtargetoutput_test.go b/pkg/cmd/buildtargetoutput_test.go index 089d742..0d62324 100644 --- a/pkg/cmd/buildtargetoutput_test.go +++ b/pkg/cmd/buildtargetoutput_test.go @@ -9,7 +9,7 @@ import ( ) func TestBuildsTargetOutputsRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds:target-outputs", "retrieve", diff --git a/pkg/cmd/org_test.go b/pkg/cmd/org_test.go index 3b2a552..934bd39 100644 --- a/pkg/cmd/org_test.go +++ b/pkg/cmd/org_test.go @@ -9,7 +9,7 @@ import ( ) func TestOrgsRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "orgs", "retrieve", @@ -18,7 +18,7 @@ func TestOrgsRetrieve(t *testing.T) { } func TestOrgsList(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "orgs", "list", diff --git a/pkg/cmd/project_test.go b/pkg/cmd/project_test.go index a0e73ce..0f2cd93 100644 --- a/pkg/cmd/project_test.go +++ b/pkg/cmd/project_test.go @@ -9,7 +9,7 @@ import ( ) func TestProjectsCreate(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "create", @@ -22,7 +22,7 @@ func TestProjectsCreate(t *testing.T) { } func TestProjectsRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "retrieve", @@ -31,7 +31,7 @@ func TestProjectsRetrieve(t *testing.T) { } func TestProjectsUpdate(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "update", @@ -41,7 +41,7 @@ func TestProjectsUpdate(t *testing.T) { } func TestProjectsList(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "list", @@ -52,7 +52,7 @@ func TestProjectsList(t *testing.T) { } func TestProjectsGenerateCommitMessage(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "generate-commit-message", diff --git a/pkg/cmd/projectbranch_test.go b/pkg/cmd/projectbranch_test.go index 48e306d..1b356fe 100644 --- a/pkg/cmd/projectbranch_test.go +++ b/pkg/cmd/projectbranch_test.go @@ -9,7 +9,7 @@ import ( ) func TestProjectsBranchesCreate(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "create", @@ -21,7 +21,7 @@ func TestProjectsBranchesCreate(t *testing.T) { } func TestProjectsBranchesRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "retrieve", @@ -31,7 +31,7 @@ func TestProjectsBranchesRetrieve(t *testing.T) { } func TestProjectsBranchesList(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "list", @@ -42,7 +42,7 @@ func TestProjectsBranchesList(t *testing.T) { } func TestProjectsBranchesDelete(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "delete", @@ -52,7 +52,7 @@ func TestProjectsBranchesDelete(t *testing.T) { } func TestProjectsBranchesRebase(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "rebase", @@ -63,7 +63,7 @@ func TestProjectsBranchesRebase(t *testing.T) { } func TestProjectsBranchesReset(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "reset", diff --git a/pkg/cmd/projectconfig_test.go b/pkg/cmd/projectconfig_test.go index d4a8002..79d550f 100644 --- a/pkg/cmd/projectconfig_test.go +++ b/pkg/cmd/projectconfig_test.go @@ -9,7 +9,7 @@ import ( ) func TestProjectsConfigsRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:configs", "retrieve", @@ -20,7 +20,7 @@ func TestProjectsConfigsRetrieve(t *testing.T) { } func TestProjectsConfigsGuess(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:configs", "guess", diff --git a/pkg/cmd/user_test.go b/pkg/cmd/user_test.go index 8754ce6..9ac7757 100644 --- a/pkg/cmd/user_test.go +++ b/pkg/cmd/user_test.go @@ -9,7 +9,7 @@ import ( ) func TestUserRetrieve(t *testing.T) { - t.Skip("Prism tests are disabled") + t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "user", "retrieve", From b02c3e38c0b8e2b6465a3edce475207e383ea4da Mon Sep 17 00:00:00 2001 From: "stainless-sdks[bot]" <167585319+stainless-sdks[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 18:28:25 -0500 Subject: [PATCH 07/11] feat: make --wait configurable with error handling (#171) Changed --wait to accept 'false', 'commit', or 'all' (default). Allows getting generated code without waiting for workflows, useful for faster CI/CD pipelines. Co-authored-by: Young-Jin Park --- pkg/cmd/build.go | 100 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 82 insertions(+), 18 deletions(-) diff --git a/pkg/cmd/build.go b/pkg/cmd/build.go index 56e20a4..d6f6126 100644 --- a/pkg/cmd/build.go +++ b/pkg/cmd/build.go @@ -5,6 +5,7 @@ package cmd import ( "context" "encoding/json" + "errors" "fmt" "os" "path" @@ -24,6 +25,29 @@ import ( "github.com/urfave/cli/v3" ) +// WaitMode represents the level of waiting for build completion +type WaitMode int + +const ( + WaitNone WaitMode = iota // Don't wait + WaitCommit // Wait for commit only + WaitAll // Wait for everything including workflows +) + +// parseWaitMode converts the --wait flag string to a WaitMode +func parseWaitMode(wait string) (WaitMode, error) { + switch wait { + case "none", "false": // Accept both "none" and "false" for backwards compatibility + return WaitNone, nil + case "commit": + return WaitCommit, nil + case "all": + return WaitAll, nil + default: + return 0, fmt.Errorf("invalid --wait value: %q (must be 'none', 'commit', or 'all')", wait) + } +} + // parseTargetPaths processes target flags to extract target:path syntax with workspace config // Returns a map of target names to their custom paths func parseTargetPaths(workspaceConfig workspace.Config, targetsSlice []string) (downloadPaths map[stainless.Target]string, targets []stainless.Target, specifiedPath bool) { @@ -82,9 +106,10 @@ var buildsCreate = requestflag.WithInnerFlags(cli.Command{ Aliases: []string{"config"}, Usage: "Path to Stainless config file", }, - &cli.BoolFlag{ + &cli.StringFlag{ Name: "wait", - Value: true, + Usage: "Wait for build completion: 'all' (wait for workflows, default), 'commit' (wait for commit only), 'none' (don't wait)", + Value: "all", }, &cli.BoolFlag{ Name: "pull", @@ -343,6 +368,12 @@ func handleBuildsCreate(ctx context.Context, cmd *cli.Command) error { return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) } + // Parse and validate --wait flag + waitMode, err := parseWaitMode(cmd.String("wait")) + if err != nil { + return err + } + wc := getWorkspace(ctx) buildGroup := console.Info("Creating build...") @@ -397,10 +428,11 @@ func handleBuildsCreate(ctx context.Context, cmd *cli.Command) error { buildGroup.Property("build_id", build.ID) - if cmd.Bool("wait") { + if waitMode > WaitNone { console.Spacer() model := tea.Model(buildCompletionModel{ - Build: cbuild.NewModel(client, ctx, *build, cmd.String("branch"), downloadPaths), + Build: cbuild.NewModel(client, ctx, *build, cmd.String("branch"), downloadPaths), + WaitMode: waitMode, }) model, err = tea.NewProgram(model).Run() if err != nil { @@ -418,20 +450,45 @@ func handleBuildsCreate(ctx context.Context, cmd *cli.Command) error { return err } - for _, target := range data.Get("targets.@values").Array() { - if target.Get("commit.completed.conclusion").String() == "error" || - target.Get("lint.completed.conclusion").String() == "error" || - target.Get("test.completed.conclusion").String() == "error" { - buildGroup.Error("Build resulted in errors!") - os.Exit(1) + // Only check for failures if we waited for the build + if waitMode == WaitNone { + return nil + } + + var failures []error + b := stainlessutils.NewBuild(*build) + + for _, target := range b.Languages() { + bt := b.BuildTarget(target) + + if bt.Status == stainless.BuildTargetStatusNotStarted { + failures = append(failures, fmt.Errorf("%s build did not start", target)) + continue + } + + if !bt.IsGoodCommitConclusion() { + failures = append(failures, fmt.Errorf("%s build failed to commit", target)) + continue + } + + // Only check workflow failures if we waited for them + if waitMode >= WaitAll { + if bt.Lint.Conclusion == "failure" || bt.Test.Conclusion == "failure" || bt.Build.Conclusion == "failure" { + failures = append(failures, fmt.Errorf("%s workflow failed", target)) + } } } + if len(failures) > 0 { + return errors.Join(failures...) + } + return nil } type buildCompletionModel struct { - Build cbuild.Model + Build cbuild.Model + WaitMode WaitMode } func (c buildCompletionModel) Init() tea.Cmd { @@ -457,18 +514,25 @@ func (c buildCompletionModel) IsCompleted() bool { for _, target := range b.Languages() { buildTarget := b.BuildTarget(target) - var downloadIsCompleted = true + if buildTarget == nil { + return false + } + + // Check if download is completed (if applicable) + downloadIsCompleted := true if buildTarget.IsCommitCompleted() && stainlessutils.IsGoodCommitConclusion(buildTarget.Commit.Completed.Conclusion) { if download, ok := c.Build.Downloads[target]; ok { - if download.Status != "completed" { - downloadIsCompleted = false - } + downloadIsCompleted = download.Status == "completed" } } - if buildTarget == nil || - !buildTarget.IsCompleted() || - !downloadIsCompleted { + // Check if target is done based on wait mode + done := buildTarget.IsCommitCompleted() + if c.WaitMode >= WaitAll { + done = buildTarget.IsCompleted() + } + + if !done || !downloadIsCompleted { return false } } From 851b7faa79aeac2c54f36dcdee2415e9d5d923b3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:40:21 +0000 Subject: [PATCH 08/11] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index eb0eff6..d94d60d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 22 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-bced6b6177fa276293bb8c54df90e10340f1b5dd92189225c53551d3952c091a.yml -openapi_spec_hash: ad0459eb77d77055a261721e087ed5da +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-c05bce23f6a3478a1803494b2c627e0bbf73917a849756eddc42f4607e167c6b.yml +openapi_spec_hash: b9eb999620220d15b176f815f21a67ba config_hash: 930aeeb7ff38238a72699b7e3313e8ae From 2aa45b852b865f4af42b47d430e67dd1f6c45809 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:46:58 +0000 Subject: [PATCH 09/11] feat(api): manual updates --- .stats.yml | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index d94d60d..ce5f5cf 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 22 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-c05bce23f6a3478a1803494b2c627e0bbf73917a849756eddc42f4607e167c6b.yml openapi_spec_hash: b9eb999620220d15b176f815f21a67ba -config_hash: 930aeeb7ff38238a72699b7e3313e8ae +config_hash: 76ca861a18ea3c495c733148a61fced2 diff --git a/go.mod b/go.mod index 281302e..0df9359 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/logrusorgru/aurora/v4 v4.0.0 github.com/muesli/reflow v0.3.0 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c - github.com/stainless-api/stainless-api-go v0.28.0 + github.com/stainless-api/stainless-api-go v0.29.0 github.com/stretchr/testify v1.11.1 github.com/tidwall/gjson v1.18.0 github.com/tidwall/pretty v1.2.1 diff --git a/go.sum b/go.sum index b51974a..59a95c9 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/stainless-api/stainless-api-go v0.28.0 h1:pwaka5itklHVwJOsp3E6pgOS9jumMfKpZvjUwWCfMMc= -github.com/stainless-api/stainless-api-go v0.28.0/go.mod h1:vssVkp6bgBKxXtnvHVnQvGNMHbn36zdkz80NMHIgXKM= +github.com/stainless-api/stainless-api-go v0.29.0 h1:j86SAGkNZmLrm6M/LAZiPw2FiP3pVqnoC4yMQ3X4Lxc= +github.com/stainless-api/stainless-api-go v0.29.0/go.mod h1:vssVkp6bgBKxXtnvHVnQvGNMHbn36zdkz80NMHIgXKM= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= From 81595c30b3f24ae68951ad66c05a20a556395902 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:48:13 +0000 Subject: [PATCH 10/11] feat(api): manual updates --- .stats.yml | 2 +- pkg/cmd/build_test.go | 4 --- pkg/cmd/builddiagnostic_test.go | 1 - pkg/cmd/buildtargetoutput_test.go | 1 - pkg/cmd/org_test.go | 2 -- pkg/cmd/project_test.go | 5 ---- pkg/cmd/projectbranch_test.go | 6 ---- pkg/cmd/projectconfig_test.go | 2 -- pkg/cmd/user_test.go | 1 - scripts/mock | 41 +++++++++++++++++++++++++++ scripts/test | 46 +++++++++++++++++++++++++++++++ 11 files changed, 88 insertions(+), 23 deletions(-) create mode 100755 scripts/mock diff --git a/.stats.yml b/.stats.yml index ce5f5cf..fc492ed 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 22 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless%2Fstainless-v0-c05bce23f6a3478a1803494b2c627e0bbf73917a849756eddc42f4607e167c6b.yml openapi_spec_hash: b9eb999620220d15b176f815f21a67ba -config_hash: 76ca861a18ea3c495c733148a61fced2 +config_hash: 977c436868252591d86546b2127ab8ce diff --git a/pkg/cmd/build_test.go b/pkg/cmd/build_test.go index 3673424..511b9ae 100644 --- a/pkg/cmd/build_test.go +++ b/pkg/cmd/build_test.go @@ -10,7 +10,6 @@ import ( ) func TestBuildsCreate(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "create", @@ -55,7 +54,6 @@ func TestBuildsCreate(t *testing.T) { } func TestBuildsRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "retrieve", @@ -64,7 +62,6 @@ func TestBuildsRetrieve(t *testing.T) { } func TestBuildsList(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "list", @@ -77,7 +74,6 @@ func TestBuildsList(t *testing.T) { } func TestBuildsCompare(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds", "compare", diff --git a/pkg/cmd/builddiagnostic_test.go b/pkg/cmd/builddiagnostic_test.go index 8602814..388d8d0 100644 --- a/pkg/cmd/builddiagnostic_test.go +++ b/pkg/cmd/builddiagnostic_test.go @@ -9,7 +9,6 @@ import ( ) func TestBuildsDiagnosticsList(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds:diagnostics", "list", diff --git a/pkg/cmd/buildtargetoutput_test.go b/pkg/cmd/buildtargetoutput_test.go index 0d62324..b3c5623 100644 --- a/pkg/cmd/buildtargetoutput_test.go +++ b/pkg/cmd/buildtargetoutput_test.go @@ -9,7 +9,6 @@ import ( ) func TestBuildsTargetOutputsRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "builds:target-outputs", "retrieve", diff --git a/pkg/cmd/org_test.go b/pkg/cmd/org_test.go index 934bd39..fc9fb55 100644 --- a/pkg/cmd/org_test.go +++ b/pkg/cmd/org_test.go @@ -9,7 +9,6 @@ import ( ) func TestOrgsRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "orgs", "retrieve", @@ -18,7 +17,6 @@ func TestOrgsRetrieve(t *testing.T) { } func TestOrgsList(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "orgs", "list", diff --git a/pkg/cmd/project_test.go b/pkg/cmd/project_test.go index 0f2cd93..5d5b540 100644 --- a/pkg/cmd/project_test.go +++ b/pkg/cmd/project_test.go @@ -9,7 +9,6 @@ import ( ) func TestProjectsCreate(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "create", @@ -22,7 +21,6 @@ func TestProjectsCreate(t *testing.T) { } func TestProjectsRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "retrieve", @@ -31,7 +29,6 @@ func TestProjectsRetrieve(t *testing.T) { } func TestProjectsUpdate(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "update", @@ -41,7 +38,6 @@ func TestProjectsUpdate(t *testing.T) { } func TestProjectsList(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "list", @@ -52,7 +48,6 @@ func TestProjectsList(t *testing.T) { } func TestProjectsGenerateCommitMessage(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects", "generate-commit-message", diff --git a/pkg/cmd/projectbranch_test.go b/pkg/cmd/projectbranch_test.go index 1b356fe..a223043 100644 --- a/pkg/cmd/projectbranch_test.go +++ b/pkg/cmd/projectbranch_test.go @@ -9,7 +9,6 @@ import ( ) func TestProjectsBranchesCreate(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "create", @@ -21,7 +20,6 @@ func TestProjectsBranchesCreate(t *testing.T) { } func TestProjectsBranchesRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "retrieve", @@ -31,7 +29,6 @@ func TestProjectsBranchesRetrieve(t *testing.T) { } func TestProjectsBranchesList(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "list", @@ -42,7 +39,6 @@ func TestProjectsBranchesList(t *testing.T) { } func TestProjectsBranchesDelete(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "delete", @@ -52,7 +48,6 @@ func TestProjectsBranchesDelete(t *testing.T) { } func TestProjectsBranchesRebase(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "rebase", @@ -63,7 +58,6 @@ func TestProjectsBranchesRebase(t *testing.T) { } func TestProjectsBranchesReset(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:branches", "reset", diff --git a/pkg/cmd/projectconfig_test.go b/pkg/cmd/projectconfig_test.go index 79d550f..d63250f 100644 --- a/pkg/cmd/projectconfig_test.go +++ b/pkg/cmd/projectconfig_test.go @@ -9,7 +9,6 @@ import ( ) func TestProjectsConfigsRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:configs", "retrieve", @@ -20,7 +19,6 @@ func TestProjectsConfigsRetrieve(t *testing.T) { } func TestProjectsConfigsGuess(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "projects:configs", "guess", diff --git a/pkg/cmd/user_test.go b/pkg/cmd/user_test.go index 9ac7757..af9b285 100644 --- a/pkg/cmd/user_test.go +++ b/pkg/cmd/user_test.go @@ -9,7 +9,6 @@ import ( ) func TestUserRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") mocktest.TestRunMockTestWithFlags( t, "user", "retrieve", diff --git a/scripts/mock b/scripts/mock new file mode 100755 index 0000000..0b28f6e --- /dev/null +++ b/scripts/mock @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +set -e + +cd "$(dirname "$0")/.." + +if [[ -n "$1" && "$1" != '--'* ]]; then + URL="$1" + shift +else + URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" +fi + +# Check if the URL is empty +if [ -z "$URL" ]; then + echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" + exit 1 +fi + +echo "==> Starting mock server with URL ${URL}" + +# Run prism mock on the given spec +if [ "$1" == "--daemon" ]; then + npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & + + # Wait for server to come online + echo -n "Waiting for server" + while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do + echo -n "." + sleep 0.1 + done + + if grep -q "✖ fatal" ".prism.log"; then + cat .prism.log + exit 1 + fi + + echo +else + npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" +fi diff --git a/scripts/test b/scripts/test index df2bd61..7383fc5 100755 --- a/scripts/test +++ b/scripts/test @@ -4,7 +4,53 @@ set -euo pipefail cd "$(dirname "$0")/.." +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +NC='\033[0m' # No Color +function prism_is_running() { + curl --silent "http://localhost:4010" >/dev/null 2>&1 +} + +kill_server_on_port() { + pids=$(lsof -t -i tcp:"$1" || echo "") + if [ "$pids" != "" ]; then + kill "$pids" + echo "Stopped $pids." + fi +} + +function is_overriding_api_base_url() { + [ -n "${TEST_API_BASE_URL:-}" ] +} + +if ! is_overriding_api_base_url && ! prism_is_running ; then + # When we exit this script, make sure to kill the background mock server process + trap 'kill_server_on_port 4010' EXIT + + # Start the dev server + ./scripts/mock --daemon +fi + +if is_overriding_api_base_url ; then + echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" + echo +elif ! prism_is_running ; then + echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" + echo -e "running against your OpenAPI spec." + echo + echo -e "To run the server, pass in the path or url of your OpenAPI" + echo -e "spec to the prism command:" + echo + echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" + echo + + exit 1 +else + echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" + echo +fi echo "==> Running tests" go test ./... "$@" From 74d94a8ed65b955e264f380f3876152097ee5a2b Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:48:30 -0500 Subject: [PATCH 11/11] release: 0.1.0-alpha.73 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 19 +++++++++++++++++++ pkg/cmd/version.go | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 65a2b6f..7b7f1c5 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.72" + ".": "0.1.0-alpha.73" } diff --git a/CHANGELOG.md b/CHANGELOG.md index f0c8a30..ae0b65f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 0.1.0-alpha.73 (2026-02-20) + +Full Changelog: [v0.1.0-alpha.72...v0.1.0-alpha.73](https://github.com/stainless-api/stainless-api-cli/compare/v0.1.0-alpha.72...v0.1.0-alpha.73) + +### Features + +* **api:** add a super basic GET /v0/user endpoint ([84c3559](https://github.com/stainless-api/stainless-api-cli/commit/84c3559be8e2d3a322db4f72a4f77ffeee030d8c)) +* **api:** manual updates ([81595c3](https://github.com/stainless-api/stainless-api-cli/commit/81595c30b3f24ae68951ad66c05a20a556395902)) +* **api:** manual updates ([2aa45b8](https://github.com/stainless-api/stainless-api-cli/commit/2aa45b852b865f4af42b47d430e67dd1f6c45809)) +* **api:** manual updates ([a3ab921](https://github.com/stainless-api/stainless-api-cli/commit/a3ab921d6ed19120d0a7f0a37574c3476f9282a7)) +* make --wait configurable with error handling ([53bffdf](https://github.com/stainless-api/stainless-api-cli/commit/53bffdf8c25250bc35e3747a87c3db536abcb388)) +* make --wait configurable with error handling ([#171](https://github.com/stainless-api/stainless-api-cli/issues/171)) ([b02c3e3](https://github.com/stainless-api/stainless-api-cli/commit/b02c3e38c0b8e2b6465a3edce475207e383ea4da)) + + +### Chores + +* **internal:** remove mock server code ([6040746](https://github.com/stainless-api/stainless-api-cli/commit/60407467a68e98b08f9920479b3e012b45023690)) +* update mock server docs ([7b64f39](https://github.com/stainless-api/stainless-api-cli/commit/7b64f39fb5bede6621a07f6307d0a976073ab71e)) + ## 0.1.0-alpha.72 (2026-02-17) Full Changelog: [v0.1.0-alpha.71...v0.1.0-alpha.72](https://github.com/stainless-api/stainless-api-cli/compare/v0.1.0-alpha.71...v0.1.0-alpha.72) diff --git a/pkg/cmd/version.go b/pkg/cmd/version.go index d32800e..2b395e0 100644 --- a/pkg/cmd/version.go +++ b/pkg/cmd/version.go @@ -2,4 +2,4 @@ package cmd -const Version = "0.1.0-alpha.72" // x-release-please-version +const Version = "0.1.0-alpha.73" // x-release-please-version