Skip to content

Promote gpco49 to main - #193

Open
f0086 wants to merge 15 commits into
mainfrom
promote-gpco49-to-main
Open

Promote gpco49 to main#193
f0086 wants to merge 15 commits into
mainfrom
promote-gpco49-to-main

Conversation

@f0086

@f0086 f0086 commented Jun 9, 2026

Copy link
Copy Markdown
Member

No description provided.

f0086 and others added 15 commits August 17, 2026 15:06
Signed-off-by: Aaron Fischer <aaron.fischer@g-portal.cloud>
…ions

Ticket: TV-1092
Signed-off-by: Aaron Fischer <aaron.fischer@g-portal.cloud>
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.46.0 to 0.47.0.
- [Commits](golang/crypto@v0.46.0...v0.47.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Update Go from 1.25.5 to 1.26.0 and all dependencies to latest versions.
Improve cobra command configuration with flag mutual exclusivity, completion
options, and shell completion functions for enum-typed flags. Remove unused
tools.go file and update all YAML definitions with missing fields.

Key changes:
- Update Go version and all dependencies
- Add flag mutual exclusivity for json/csv output
- Disable default file completions globally
- Implement shell completion for enum-typed flags
- Remove tools.go and clean up unused code
- Update workflow action versions

Ticket: GPCO-8
Update all dependencies to their latest versions including:
- buf.build/gen/go/gportal/gpcore packages
- charmbracelet/log to v1.0.0
- go-pretty/v6 to v6.7.10
- zalando/go-keyring to v0.2.8
- golang.org/x/crypto to v0.50.0
- google.golang.org/grpc to v1.80.0

Also bump Go version from 1.26.0 to 1.26.2 in go.mod and update
GitHub Actions workflows to use the new Go version.

Ticket: GPCO-8
…mment

Improve enum value completion by filtering suggestions based on user input
and sorting results alphabetically. This provides better UX when completing
enum values. Also clarified the comment explaining why Cobra's default
completion subcommand is disabled in favor of a custom implementation.

Ticket: GPCO-8
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.80.0 to 1.81.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.80.0...v1.81.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.81.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bump buf.build gpcore grpc/go to v1.6.2-20260601154410 and
protocolbuffers/go to v1.36.11-20260601154410 (pulls grpc v1.81.0).
The new schema adds the AdminService ServerIssues/ValidateServer RPCs
used by later commits.

GPCO-49
Generator changes that let project-scoped commands accept either an
explicit --project-id flag or the project selected via "project use":

- Add Param.Source ("session.CurrentProject"): makes a flag optional and
  falls back to the session project, erroring if neither is set.
- Auto-expose an optional --project-id override on actions whose identifier
  is session.CurrentProject (with the same fallback/erroring), via the new
  resolveIdentifier helper.
- Fix defaultValue panic for optional enum flags without a default (emit "").
- parameterDescription hints session-sourced flags instead of "(required)".
- Document intentional API coverage gaps on the APICall type.

GPCO-49
Resolve the duplicated/mandatory --project-id flag so project-scoped
commands work with either an explicit --project-id or the project selected
via "project use":

- node (get/create/destroy/reinstall/power-action/change-billing-period)
  and project-image (get/delete/delete-version): project_id is now a
  session-sourced optional param instead of a required flag.
- change-rescue-mode (manual): same optional --project-id fallback.
- Drop node root PersistentPreRunE that forced a selected project, so a
  command can run by passing --project-id without "project use" first.

Identifier-based commands (project, project-cloudprovider, node list, ...)
gain the optional --project-id override automatically via the generator.

GPCO-49
Full review of every command's params against the latest gRPC request
messages. Add missing, non-deprecated fields and fix a real bug:

- flavour list-project / project flavours: include_sold_out
- image update: contains_spla_license
- ip history, log admin, network-switch list, node list: search (+ admin
  log admin_user_id / user_id filters)
- project images: only_available; project logs: search, user_id
- server update: autofix, maintenance, maintenance_reason (is_broken left
  out, deprecated); server delete: skip_clean
- spla get: year, month; user unlock: reason
- project-cloudprovider delete-image: add missing cloud_provider_image_id
  (previously impossible to target the image)
- operating-systems update / flavour update: document fields that cannot be
  expressed as flags (File / repeated nested messages)

No stale params were found; all pre-existing params map to real fields.

GPCO-49
Expand CLI coverage toward parity with the gRPC API:

- admin-project (new resource): list/get/nodes (generated) and update
  (manual; nested BillingProfile). Kept separate from the user-facing
  "project" command to avoid colliding with the cloud.* endpoints.
- server: issues (ListServerIssues), server-issues (GetServerIssues),
  validate (ValidateServer), search-options (GetServerSearchOptions), and a
  manual "filter" command using ListServers ExtendedSearch.
- network-arp: search-options (GetArpEntriesSearchOptions).
- user: stats (GetUserStats); billing-profile: update/delete.
- notifications (manual): cloud.SubscribeNotifications, sharing the stream
  loop with livelog via the new api.StreamMessages helper.
- Add FormatServerIssueSource formatter.

Intentionally excluded: payment credit-card/plan-code, auth client mgmt,
admin GetDashboard, and internal network/metadata/gateway/readiness RPCs.

GPCO-49
The active project ("project use") is per user/impersonation context and
must not leak across context switches:

- impersonate: clear CurrentProject when entering impersonation.
- logout: also clear a lingering CurrentProject when not impersonating
  (e.g. after an expired impersonation / agent restart).
- project use: now selects (arg), shows the active project (no arg, with a
  GetProject lookup that self-heals a stale selection), or clears it
  (--clear).
- Add FormatCommandError with actionable hints (used by the agent) and make
  the NotFound hint generic instead of referencing flags that not every
  command has.

GPCO-49
The command was a disabled placeholder blocked on a missing ListSubnets
gRPC endpoint. The intentional exclusion is now documented on the APICall
type in the generator.

GPCO-49
@f0086
f0086 force-pushed the promote-gpco49-to-main branch from 4cfc0a2 to 2df4622 Compare August 17, 2026 13:10
@f0086
f0086 requested a review from BirknerAlex August 18, 2026 08:49
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.

1 participant