Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
0ef9f56
initial scaffolding
Nov 4, 2025
b33593b
add apply, edit commands
Nov 26, 2025
a88c2a7
add polling
Dec 2, 2025
58e7227
add some comments and updates
Dec 4, 2025
674b49e
Move to using oauth client in cliext
anekkanti Dec 12, 2025
4d1ab36
Move to using cliext for command generation
anekkanti Dec 12, 2025
5755a4c
cleanup some unreachable code
anekkanti Dec 12, 2025
1194d80
fix idempotent spelling typo
anekkanti Dec 12, 2025
801204e
Address copilot code review feedback
anekkanti Dec 12, 2025
df59476
go mod cleanup
anekkanti Dec 12, 2025
85f766a
Add a github action to build the cli
anekkanti Dec 12, 2025
1a7535e
Fix for github actions verifying generation
anekkanti Dec 12, 2025
c7c9b0a
Add a --server flag
anekkanti Dec 12, 2025
59d4b7d
More changes
anekkanti Dec 13, 2025
56124da
Move to latest oauth cliext package
anekkanti Dec 16, 2025
0883a1f
more updats
anekkanti Dec 19, 2025
c5f1302
Add guidelines for ai-agents
anekkanti Dec 19, 2025
5a3b687
more updates
anekkanti Dec 19, 2025
32346c1
More ux updates
anekkanti Dec 19, 2025
9788f40
update mod update
anekkanti Jan 5, 2026
2b2af94
Add a patch command for namespace retention days
anekkanti Jan 5, 2026
c25e283
update go.mod
Jan 5, 2026
67be767
fix proto clone
Jan 5, 2026
aa482e5
move retention to subcommand and add get method
Jan 6, 2026
7d2c356
add resource version flag for all update commands
Jan 6, 2026
f4481d4
add namespace lifecycle management commands
Jan 6, 2026
74e8cca
Update temporalcloudcli/commands.namespace.retention.go
gregmankes Jan 6, 2026
0ad9188
Update temporalcloudcli/commands.namespace.go
gregmankes Jan 6, 2026
795b5a4
Merge pull request #3 from temporalio/gmankes/add-patch-commands
gregmankes Jan 6, 2026
2123ec3
set iam as codeowner
Jan 6, 2026
59fcaee
Merge pull request #4 from temporalio/gmankes/add-lifecycle-patch-com…
gregmankes Jan 6, 2026
7f4c17d
fix formatting directive for fmt.Errorf
Jan 7, 2026
828b741
bump cliext
Jan 8, 2026
c04bd8a
add mise toml and add command test harness
Jan 8, 2026
918fb67
remove a test that's broken
Jan 8, 2026
413dfe1
add integration test harness and fix bugs
Jan 14, 2026
24f812e
fix env var name
Jan 14, 2026
7301f3d
modify makefile to make .env not required
Jan 14, 2026
2974b5c
remove environment from cicd
Jan 14, 2026
4fd70a9
Merge pull request #5 from temporalio/gmankes/bump_cliext
gregmankes Jan 14, 2026
aa87efd
add build tags to commands_test
Jan 14, 2026
2c9a698
fix json printing, add consistency across the board
Jan 16, 2026
7103686
Update test.yml
gregmankes Jan 17, 2026
09e5c18
Update test.yml
gregmankes Jan 17, 2026
955167f
Update temporalcloudcli/commands.namespace_test.go
gregmankes Jan 20, 2026
977d29a
Merge pull request #6 from temporalio/gmankes/add_test_harness
gregmankes Jan 20, 2026
18c0468
add profile and config to oauth config store/loading
Jan 20, 2026
718c3cf
use external package to generate commands
Jan 20, 2026
2d2a7d9
use envlookup os in loading from env
Jan 20, 2026
9c3585a
add goreleaser, release wf, and cloud client user agent
Jan 21, 2026
38387dd
Update temporalcloudcli/cloud.go
gregmankes Jan 21, 2026
c5d9729
Merge pull request #7 from temporalio/gmankes/add_versioning_info
gregmankes Jan 21, 2026
4833dbb
Merge branch 'develop' into gmankes/use_external_common_options
Jan 22, 2026
087e3ba
add profile fallthrough and common options
Feb 3, 2026
cd5e7ff
Merge pull request #8 from temporalio/gmankes/use_external_common_opt…
anekkanti Feb 4, 2026
ae6c1b3
add installation of gen-commands
Feb 4, 2026
927fddf
make the install rule cleaner
Feb 4, 2026
77df88e
address comments on pr
Feb 5, 2026
0019b0c
update gitignore
Feb 5, 2026
37ef708
Merge pull request #10 from temporalio/gmankes/update_gen_commands_rule
gregmankes Feb 6, 2026
f235040
Initial plan
Copilot Feb 6, 2026
948c88a
Add Go bin to PATH in GitHub Actions workflow
Copilot Feb 6, 2026
34c2986
Merge pull request #12 from temporalio/copilot/fix-github-actions-pat…
gregmankes Feb 6, 2026
933a954
add async operation polling after apply
Feb 9, 2026
5a04718
Merge pull request #13 from temporalio/gmankes/fix_issues_in_develop_…
khisakuni Feb 12, 2026
66f333c
Fix integration tests (#14)
khisakuni Feb 18, 2026
c41ca7e
Cursor bug bot fixes (#15)
khisakuni Feb 18, 2026
e43af43
update go
khisakuni Feb 18, 2026
2ccc149
Fix: Context cancellation function ignored causing leak
khisakuni Feb 18, 2026
82792e6
Fix: Direct output breaks JSON formatting in commands
khisakuni Feb 18, 2026
aeec650
Fix: OAuth server error not checked causing silent failure
khisakuni Feb 18, 2026
1458949
Remove double new line
khisakuni Feb 18, 2026
7471aa2
Merge pull request #16 from temporalio/more-cursor-fixes
anekkanti Feb 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Check Generated Files
on:
push:
branches:
- main
pull_request:
branches:
- main

permissions:
contents: read

jobs:
verify-generation:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
check-latest: true
cache: false
- name: Add Go bin to PATH
run: echo "$HOME/go/bin" >> $GITHUB_PATH
- name: Run commands generation command
run: make gen
- name: Verify no changes were generated
run: |
# Check if there are any uncommitted changes in the working directory
if [ -z "$(git status --porcelain)" ]; then
echo "::notice::Generated files are up to date. No changes detected."
else
echo "::error::Detected uncommitted changes after running the generation command. Please run the generator and commit the changes."
git status
git diff
exit 1
fi
build:
runs-on: ubuntu-latest
needs: verify-generation
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
check-latest: true
cache: false
- name: Build the cli binary
run: make build
Comment thread
cursor[bot] marked this conversation as resolved.
60 changes: 60 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Release

on:
workflow_dispatch:
release:
types:
- published

permissions:
contents: write

jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
check-latest: true
cache: true

- name: Get build date
id: date
run: echo "date=$(date '+%F-%T')" >> "$GITHUB_OUTPUT"

- name: Get build unix timestamp
id: timestamp
run: echo "timestamp=$(date '+%s')" >> "$GITHUB_OUTPUT"

- name: Get git branch
id: branch
run: echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> "$GITHUB_OUTPUT"

- name: Get build platform
id: platform
run: echo "platform=$(go version | cut -d ' ' -f 4)" >> "$GITHUB_OUTPUT"

- name: Get Go version
id: go
run: echo "go=$(go version | cut -d ' ' -f 3)" >> "$GITHUB_OUTPUT"

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: v2.12.7
args: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BUILD_DATE: ${{ steps.date.outputs.date }}
BUILD_TS_UNIX: ${{ steps.timestamp.outputs.timestamp }}
GIT_BRANCH: ${{ steps.branch.outputs.branch }}
BUILD_PLATFORM: ${{ steps.platform.outputs.platform }}
GO_VERSION: ${{ steps.go.outputs.go }}
67 changes: 67 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: test

on:
push:
branches:
- develop
- main
pull_request:

permissions:
contents: read

jobs:
test:
name: Unit + Integration (mise)
runs-on: ubuntu-latest

env:
TEMPORAL_CLOUD_SERVER: ${{ vars.TEMPORAL_CLOUD_SERVER }}
TEMPORAL_API_KEY: ${{ secrets.TEMPORAL_API_KEY }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
check-latest: true
cache: false

- name: Setup mise
uses: jdx/mise-action@v2
with:
install: true

- name: Validate required environment variables and secrets
shell: bash
run: |
set -euo pipefail

missing=0

if [[ -z "${TEMPORAL_CLOUD_SERVER:-}" ]]; then
echo "::error::TEMPORAL_CLOUD_SERVER is not set or is empty"
missing=1
fi


# Secret: check presence ONLY, never print or echo
if [[ -z "${TEMPORAL_API_KEY:-}" ]]; then
echo "::error::TEMPORAL_API_KEY is not set or is empty"
missing=1
fi

if [[ "$missing" -ne 0 ]]; then
exit 1
fi

- name: Run unit tests
run: |
mise run test

- name: Run integration tests
run: |
mise run integration
15 changes: 12 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
*.dll
*.so
*.dylib
/cloud-cli
/temporal-cloud
dist/
# the cli clone for installing gen-commands
cli/

# Test binary, built with `go test -c`
*.test
Expand All @@ -18,7 +23,7 @@ coverage.*
profile.cov

# Dependency directories (remove the comment below to include it)
# vendor/
vendor/

# Go workspace file
go.work
Expand All @@ -28,5 +33,9 @@ go.work.sum
.env

# Editor/IDE
# .idea/
# .vscode/
.idea/
.vscode/

# bots and other local information
.local/
.claude/
71 changes: 71 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
version: 2

before:
hooks:
- go mod download

release:
prerelease: auto
draft: false
name_template: "v{{.Version}}"

archives:
- <<: &archive_defaults
name_template: "temporal_cloud_cli_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
id: nix
ids:
- nix
formats:
- tar.gz
files:
- LICENSE

- <<: *archive_defaults
id: windows-zip
ids:
- windows
formats:
- zip
files:
- LICENSE

# used by SDKs as zip cannot be used by rust https://github.com/zip-rs/zip/issues/108
- <<: *archive_defaults
id: windows-targz
ids:
- windows
files:
- LICENSE

builds:
- <<: &build_defaults
dir: cmd/temporal-cloud
binary: temporal-cloud
ldflags:
- -s -w -X github.com/temporalio/cloud-cli/temporalcloudcli.Version={{.Version}}
goarch:
- amd64
- arm64
env:
- CGO_ENABLED=0
id: nix
goos:
- linux
- darwin

- <<: *build_defaults
id: windows
goos:
- windows
hooks:
post: # TODO sign Windows release

checksum:
name_template: "checksums.txt"
algorithm: sha256

changelog:
disable: true

announce:
skip: "true"
Loading
Loading