Skip to content

feat(cli) Add All missing features of the Organizations API#263

Merged
DerBurri merged 61 commits into
mainfrom
add-organization-api
Jul 7, 2026
Merged

feat(cli) Add All missing features of the Organizations API#263
DerBurri merged 61 commits into
mainfrom
add-organization-api

Conversation

@DerBurri

@DerBurri DerBurri commented May 13, 2026

Copy link
Copy Markdown
Contributor

This branch implements org-aware team functionality across the CLI and API client, adds unit tests for team flows, and makes client creation injectable to improve testability. It also includes several refactors and dependency updates required to support the new behavior.

  1. Key points

Organization-aware team behavior:
Use GlobalOptions.OrgId and environment GetOrgId() for org-scoped commands.
Add organization filtering to ListTeams and helper conversions for org teams (API + CLI).
Team management commands and tests:
Implement and test AddTeamMember and RemoveTeamMember command logic and validation.
Implement and test team deletion (RemoveTeam) with injectible ClientFactory to mock API calls.
Add/extend unit tests for create/add/remove team flows.
Error handling & observability:
Improve API error logging to include traceId.
Centralize API error formatting via api/errors.FormatAPIError.
Testability & infra:
Make client construction injectable for CLI commands to allow mocks in tests.
Build-and-run integration test workflow updated (artifact + label matrix) — see integration-test.yml.
Chores & deps:
Multiple dependency updates and lint/test chore fixes.
Representative commits

CLI commands: team_create.go, team_add_member.go, team_remove_member.go, team_remove.go
Tests: team_create_test.go, team_add_member_test.go, team_remove_member_test.go, team_remove_test.go
API error handling: errors.go, tests in errors_test.go
CI workflow: integration-test.yml
Client interface and mocks: client.go, mocks.go
Testing / verification

Ran unit tests for the CLI package locally: go test ./cli/cmd — passing.
Integration tests are built and run via the updated GitHub Actions workflow; note that some int tests previously observed backend HTTP 500s during workspace deletion (server-side). If CI shows failures, collect trace IDs and forward to backend logs for investigation.
Migration / usage notes

@DerBurri DerBurri force-pushed the add-organization-api branch 2 times, most recently from 2452e6c to 1487f91 Compare May 13, 2026 12:18
@DerBurri DerBurri force-pushed the add-organization-api branch from 044e3a4 to a513836 Compare June 3, 2026 08:20
@DerBurri DerBurri self-assigned this Jun 3, 2026
@DerBurri DerBurri force-pushed the add-organization-api branch from 3ceec3c to a58b8eb Compare June 3, 2026 08:58
@DerBurri DerBurri marked this pull request as ready for review June 3, 2026 09:20
@DerBurri DerBurri requested a review from a team as a code owner June 3, 2026 09:20

@OliverTrautvetter OliverTrautvetter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice feature, some comments for it 👍

Comment thread pkg/cs/env.go
Comment thread cli/cmd/root.go
Comment thread cli/cmd/team_add_member.go
Comment thread cli/cmd/team_create.go
Comment thread cli/cmd/team_remove.go
Comment thread cli/cmd/team_create.go
Comment thread cli/cmd/team_remove.go Outdated
Comment thread cli/cmd/team_remove.go Outdated
Comment thread cli/cmd/team_remove_member.go
Comment thread cli/cmd/team_remove_member.go Outdated
@DerBurri DerBurri force-pushed the add-organization-api branch from 00c60bf to db693fa Compare June 17, 2026 09:12
@DerBurri DerBurri force-pushed the add-organization-api branch 2 times, most recently from b8b9251 to 66f578e Compare June 17, 2026 12:57

@OliverTrautvetter OliverTrautvetter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Some more comments to improve it

Comment thread api/team.go Outdated
Comment thread cli/cmd/team_create.go Outdated
Comment thread cli/cmd/team_remove_member.go Outdated
Comment thread cli/cmd/team_add_member.go Outdated
Comment thread cli/cmd/team_add_member_test.go Outdated
Comment thread cli/cmd/team_add_member.go Outdated
Comment thread cli/cmd/team_create.go
Comment thread api/types.go Outdated
Comment thread api/team.go Outdated
Comment thread cli/cmd/team_create.go
@DerBurri DerBurri force-pushed the add-organization-api branch 5 times, most recently from 6f01b45 to faf3bdf Compare July 1, 2026 11:05

@OliverTrautvetter OliverTrautvetter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Some more comments, but we are moving into the right direction 😄

Comment thread cli/cmd/team_remove.go Outdated
Comment thread api/team.go Outdated
Comment thread api/team.go Outdated
Comment thread cli/cmd/team_create.go Outdated
Comment thread api/team.go
Comment thread cli/cmd/team_add_member.go
Comment thread cli/cmd/team_add_member.go Outdated
Comment thread cli/cmd/team_add_member_test.go Outdated
Comment thread cli/cmd/team_add_member.go Outdated
@DerBurri DerBurri force-pushed the add-organization-api branch 4 times, most recently from 166f2be to 8e5b34d Compare July 6, 2026 15:26
DerBurri and others added 5 commits July 6, 2026 17:28
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: DerBurri <7892993+DerBurri@users.noreply.github.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
chore(mock): Update MockClient.ListTeams signature
test(cli): Update ListTeams mock expectation in list_workspaces_test
feat(api): Add ConvertOrgTeamToTeam helper for organization teams
refactor(cli): Simplify ListTeamsCmd.RunE to use new ListTeams signature
feat(cli): Update Client interface for ListTeams to include orgId
feat(cli): Add --org flag and GlobalOptions.OrgId for organization context
feat(pkg): Add GetOrgId to Environment for CS_ORG_ID
feat(cli): Implement 'cs list org' command to list organizations

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
DerBurri and others added 20 commits July 6, 2026 17:29
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: DerBurri <7892993+DerBurri@users.noreply.github.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
add wrapper for team conversion to allow non hardcoded value of role in the missing field

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: DerBurri <7892993+DerBurri@users.noreply.github.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
* feat: add first draft cs mcp server

* fix: add cs-mcp to gitignore

* fix: fix env var names in readme

* update: clean up workspace structs

* update: add mcp server to the main cs-go cli

* update: remove mcp readme, add long mcp cmd description, remove old build related stuff

* update: update file name of the main mcp file

* chore(docs): Auto-update docs and licenses

Signed-off-by: siherrmann <25087590+siherrmann@users.noreply.github.com>

* fix: fix dependency error

* fix: fix dependecy issue

---------

Signed-off-by: siherrmann <25087590+siherrmann@users.noreply.github.com>
Co-authored-by: siherrmann <25087590+siherrmann@users.noreply.github.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
…D s new parameter

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: DerBurri <7892993+DerBurri@users.noreply.github.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
…emoval commands and tests

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
…hin an organization

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
@DerBurri DerBurri force-pushed the add-organization-api branch from 8e5b34d to e82d47e Compare July 6, 2026 15:30
…in team creation tests

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
@DerBurri DerBurri force-pushed the add-organization-api branch from be88c02 to 1fee531 Compare July 6, 2026 15:37
… id is not required

Signed-off-by: Maximilian <burr.maximilian97@gmail.com>
@DerBurri DerBurri force-pushed the add-organization-api branch from 3c2bd02 to 3112fe9 Compare July 7, 2026 08:27
Signed-off-by: DerBurri <7892993+DerBurri@users.noreply.github.com>

@OliverTrautvetter OliverTrautvetter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good now from my side 🚀

@DerBurri DerBurri merged commit 08e0df4 into main Jul 7, 2026
15 checks passed
@DerBurri DerBurri deleted the add-organization-api branch July 7, 2026 13:52
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.

3 participants