Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions .agents/skills/godaddy-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,9 +260,9 @@ Release and deploy accept `--config <path>` and `--environment <env>`.
Use `godaddy api` for endpoint discovery and authenticated API calls:

```bash
# List domains and endpoints
godaddy api list
godaddy api list --domain commerce
# List API domains, and endpoints within a domain
godaddy api domain list
godaddy api endpoint list --domain commerce

# Describe one endpoint (operation ID or path)
godaddy api describe commerce.location.verify-address
Expand All @@ -283,15 +283,15 @@ godaddy api call /v1/commerce/orders -s commerce.orders:read
```

Compatibility behavior:
- `godaddy api <endpoint>` still works. If the token after `api` is not one of `list`, `describe`, `search`, or `call`, the CLI treats it as an endpoint and executes `api call`.
- `godaddy api <endpoint>` still works. If the token after `api` is not one of `domain`, `endpoint`, `describe`, `search`, or `call`, the CLI treats it as an endpoint and executes `api call`.
- This means legacy usage like `godaddy api /v1/commerce/location/addresses` remains supported.

As with other large result sets, `api list` may be truncated in the inline JSON response. When `truncated: true`, read the `full_output` file path for complete results.
As with other large result sets, `api domain list` / `api endpoint list` may be truncated in the inline JSON response. When `truncated: true`, read the `full_output` file path for complete results.

Address task rule:
- For requests like "find/search/verify an address", start with:
`godaddy api search address`
`godaddy api list --domain location`
`godaddy api endpoint list --domain location`
`godaddy api describe /location/addresses`
- Do not use `godaddy actions describe` for generic API endpoint discovery.

Expand Down
11 changes: 6 additions & 5 deletions rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ path = "src/main.rs"
async-trait = "0.1"
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
clap = { version = "4.5", features = ["std", "string"] }
cli-engine = { features = ["pkce-auth"], version = "0.2.2" }
cli-engine = { features = ["pkce-auth"], version = "0.3.0" }
dirs = "6"
domains-client = { path = "domains-client" }
fancy-regex = "0.14"
Expand Down
6 changes: 5 additions & 1 deletion rust/domains-client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "domains-client"
version = "0.1.0"
edition = "2024"
license = "Proprietary"
description = "Generated GoDaddy Domains API client (availability + suggest), produced from the vendored OpenAPI 3.0 spec by progenitor at build time."
description = "Generated GoDaddy Domains API client (domains list + availability + suggest + DNS records), produced from the vendored OpenAPI 3.0 spec by progenitor at build time."

[dependencies]
# Pinned to 0.11 (the latest progenitor on reqwest 0.12): keeps the whole
Expand All @@ -12,6 +12,10 @@ description = "Generated GoDaddy Domains API client (availability + suggest), pr
# the Windows-msvc cross-build clean.
progenitor-client = "0.11"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream"] }
# Pinned to match cli-engine's schemars so the generated types' derived
# `JsonSchema` impls satisfy `CommandSpec::with_json_schema::<T>()` (a different
# schemars major would be a distinct, incompatible trait).
schemars = { version = "1", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
futures = "0.3"
Expand Down
9 changes: 7 additions & 2 deletions rust/domains-client/build.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
//! Generates the typed Domains API client from the vendored OpenAPI 3.0 spec.
//!
//! The spec (`openapi/domains.oas3.json`) is committed and trimmed to the
//! availability + suggest operations (see `scripts/regenerate-spec.sh`); this
//! build step is hermetic and never touches the network.
//! domains-list + availability + suggest + DNS-record operations (see
//! `scripts/regenerate-spec.sh`); this build step is hermetic and never touches
//! the network.

use std::{env, fs, path::Path};

Expand All @@ -20,6 +21,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
// are simply omitted rather than passed as `None`.
let mut settings = progenitor::GenerationSettings::new();
settings.with_interface(progenitor::InterfaceStyle::Builder);
// Derive `schemars::JsonSchema` on the generated response/request types so
// the CLI can register them via `CommandSpec::with_json_schema::<T>()` and
// surface their fields through `--schema`.
settings.with_derive("schemars::JsonSchema");
let mut generator = progenitor::Generator::new(&settings);
let tokens = generator.generate_tokens(&spec)?;
let ast = syn::parse2(tokens)?;
Expand Down
Loading
Loading