The Agent: GitHub API exposes the daemon’s GitHub tool surface: authentication (device flow or PAT), working-tree status, repo/branch listing, clone, commit, sync (fetch/pull/push), and pull-request creation. All routes are cwd-scoped (git is repo/cwd-relative) and not realm-scoped, so a per-request realm header is rejected with 400 realm_scope_unsupported. Tokens live only in env and are never returned.
Reports the GitHub authentication state (github.auth.status) from the account store. The token is only in env; it is never returned.
This route has no realm/container/cwd/config-dir dimension, so every per-request scope header returns 400 realm_scope_unsupported.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope: the .hoody project layer / record cwd / tool+workflow cwd. X-Hoody-Config-Dirheader string No Per-request --config-dir override selecting which on-disk .hoody install a stateless read/write resolves. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). Rejected (400) on routes with no container dimension. X-Hoody-Realmheader string No Per-request realm selector: "global" or a 24-hex id. Rejected (400 realm_scope_unsupported) on active-only / no-realm routes. realmquery string No Per-request realm selector — the in:query alias of the X-Hoody-Realm header.
curl https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/auth/status
await client . agent . github . githubAuthStatus ()
" code " : " realm_scope_unsupported " ,
" message " : " realm scope not supported on this route "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC, which has no realm dimension to scope. Omit the realm header on this route, or open a session to scope by realm.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy (hoody agent …), not by connecting to the container directly.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
Begins a GitHub login. With no body token, this starts a device flow and returns the non-secret {device_code, user_code, verification_uri, interval, expires_in}; the user authorizes that URL out of band, then POST /github/auth/login/poll completes the login. With a body token (a PAT), this validates and persists the token directly (no device flow), returning the linked {login, host}. For GitHub Enterprise (GHES), set body host (default github.com) on both the device-flow start and the PAT-add.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
Name Type Required Description tokenstring No Optional PAT. When present the login validates and persists this token (no device flow); kept in env, never returned. hoststring No GitHub host for GitHub Enterprise (GHES); defaults to github.com. Must match the host on the subsequent poll call.
" host " : " github.acme.internal "
curl -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/auth/login \
-H " Content-Type: application/json " \
-d ' { "host": "github.com" } '
await client . agent . github . githubLogin ({ host : " github.com " })
" device_code " : " 3584d83530557fdd1f46af18a1318c8f5a7d3b7a " ,
" user_code " : " WDJB-MJHT " ,
" verification_uri " : " https://github.com/login/device " ,
" code " : " realm_scope_unsupported " ,
" message " : " realm scope not supported on this route "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate Forbidden — the request was refused by the server’s admin gate. Run the daemon with socket auth (--auth-token-path) and no separate admin capability so its own gate allows HTTP requests forwarded from the gateway. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy, not by connecting to the container directly.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). The gateway rejects an oversized body at the edge before the handler reads it. Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry; reduce the request rate.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
Polls an in-flight GitHub device-flow login. Forward the {device_code, interval, expires_in} the start reply returned; the call blocks until the user authorizes (or the flow expires/cancels), then validates and persists the resulting token.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
Name Type Required Description device_codestring Yes The device_code returned by POST /github/auth/login. hoststring No The GitHub host (default github.com); must match the start call. intervalinteger No The poll interval (seconds) the start reply returned. expires_ininteger No The device-code lifetime (seconds) the start reply returned.
" device_code " : " 3584d83530557fdd1f46af18a1318c8f5a7d3b7a " ,
curl -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/auth/login/poll \
-H " Content-Type: application/json " \
-d ' { "device_code": "3584d83530557fdd1f46af18a1318c8f5a7d3b7a", "interval": 5, "expires_in": 900, "host": "github.com" } '
await client . agent . github . githubLoginPoll ({
device_code : " 3584d83530557fdd1f46af18a1318c8f5a7d3b7a " ,
" key " : " github.com:octocat " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap. Reduce the request body below the limit (default 8 MiB).
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Lists known/configured repos (github.repo.list). Returns the daemon reply verbatim ({status, repos, account}); not paginated.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
curl https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/repos
await client . agent . github . githubRepos ()
{ " full_name " : " octocat/hello-world " , " clone_url " : " https://github.com/octocat/hello-world.git " , " private " : false },
{ " full_name " : " octocat/spoon-knife " , " clone_url " : " https://github.com/octocat/spoon-knife.git " , " private " : true }
" code " : " realm_scope_unsupported " ,
" message " : " realm scope not supported on this route "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a cwd-scoped RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Lists branches for the requesting cwd’s repo (github.branch.list). Returns {status, branches} verbatim; not paginated.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
curl https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/branches
await client . agent . github . githubBranches ()
{ " name " : " main " , " sha " : " a5c5b3d1c9f0e2a6b4d8c7e1f3a2b4c5d6e7f809 " },
{ " name " : " feature/login-flow " , " sha " : " b6d6c4e2d0a1f3b7c5e9d8f2a4b3c5d6e7f80901 " }
" code " : " realm_scope_unsupported " ,
" message " : " realm scope not supported on this route "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a cwd-scoped RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Returns the git working-tree status (github.status) for the requesting cwd.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
curl https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/status
await client . agent . github . githubStatus ()
" branch " : " feature/login-flow " ,
{ " path " : " src/login.ts " , " state " : " modified " },
{ " path " : " README.md " , " state " : " untracked " }
" code " : " realm_scope_unsupported " ,
" message " : " realm scope not supported on this route "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a cwd-scoped RPC. Omit the realm header on this route.
" message " : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Clones a GitHub repository. The service translates repo (owner/name OR an https github URL) into the server-authoritative {full_name, clone_url}: the clone runs against the active account host (a URL whose host does not match is rejected), and the destination is derived traversal-safe under the managed clone root (dir overrides it).
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
Name Type Required Description repostring No The repository to clone: "owner/name" or an https github URL. Translated to full_name + clone_url against the active account host. Supply this OR the canonical full_name + clone_url; if both, the canonical fields win. full_namestring No Canonical "owner/name" (alternative to repo; used as-is when supplied). Requires clone_url. clone_urlstring No Canonical https clone URL (alternative to repo; re-validated against the active account host). Requires full_name. dirstring No Optional managed clone root override (clone_root); the traversal-safe parent/dest are derived under it. shallowboolean No Shallow clone (default true).
" repo " : " octocat/hello-world " ,
curl -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/clone \
-H " Content-Type: application/json " \
-d ' { "repo": "octocat/hello-world", "shallow": true } '
await client . agent . github . githubClone ({
repo : " octocat/hello-world " ,
" full_name " : " octocat/hello-world " ,
" clone_url " : " https://github.com/octocat/hello-world.git " ,
" dest " : " /srv/clones/octocat/hello-world " ,
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters (for example, neither repo nor full_name + clone_url was supplied, or a clone_url host did not match the active account). Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap. Reduce the request body below the limit (default 8 MiB).
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Stages all changes and commits in the requesting cwd’s repo. Destructive.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
Name Type Required Description messagestring Yes The commit message.
" message " : " feat(login): wire up GitHub device-flow poll "
curl -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/commit \
-H " Content-Type: application/json " \
-d ' { "message": "feat(login): wire up GitHub device-flow poll" } '
await client . agent . github . githubCommit ({
message : " feat(login): wire up GitHub device-flow poll "
" sha " : " c1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0 " ,
" branch " : " feature/login-flow "
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap. Reduce the request body below the limit (default 8 MiB).
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Runs fetch → pull → push as one logical sync, stopping at the first non-ok step so a later push never runs against a half-synced tree. The body direction lets a caller pull-only (fetch + pull) or push-only; default is the full sync. This is body-only — there is no ?direction alias.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
Name Type Required Description directionstring No Optional: "pull" (fetch + pull) or "push" (push only). Default is the full fetch → pull → push.
curl -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/sync \
-H " Content-Type: application/json " \
-d ' { "direction": "pull" } '
await client . agent . github . githubSync ({ direction : " pull " })
{ " step " : " fetch " , " result " : { " status " : " ok " } },
{ " step " : " pull " , " result " : { " status " : " ok " } },
{ " step " : " push " , " result " : { " status " : " ok " } }
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters (for example, an unrecognized direction). Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap. Reduce the request body below the limit (default 8 MiB).
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " sync_step_failed " ,
" message " : " sync step failed " ,
{ " step " : " fetch " , " result " : { " status " : " ok " } },
{ " step " : " pull " , " result " : { " status " : " ok " } },
{ " step " : " push " , " result " : { " status " : " error " , " message " : " updates were rejected (non-fast-forward) " } }
Error Code Title Description Resolution sync_step_failedSync step failed A downstream git/gh step (fetch/pull/push) failed after the sync was accepted; the steps that ran plus the failing one are returned under details. Resolve the underlying git state (conflict / transport / auth) and retry the sync.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.
Opens a pull request for the requesting cwd’s repo. Destructive.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope. X-Hoody-Config-Dirheader string No Per-request --config-dir override. X-Hoody-Containerheader string No Per-request bound remote container (omitted = local). X-Hoody-Realmheader string No Per-request realm selector. Rejected (400 realm_scope_unsupported). realmquery string No Per-request realm selector (in:query alias).
Name Type Required Description titlestring Yes The PR title (required, non-empty). bodystring No The PR description. basestring No Optional base branch (default the repo default).
" title " : " Wire up GitHub device-flow login " ,
" body " : " Adds the device-flow login and poll handlers, and a managed PAT path. " ,
curl -X POST https://{projectId}-{containerId}-agent-1.{server}.containers.hoody.icu/api/v1/agent/github/pr \
-H " Content-Type: application/json " \
-d ' { "title": "Wire up GitHub device-flow login", "body": "Adds the device-flow login and poll handlers, and a managed PAT path.", "base": "main" } '
await client . agent . github . githubPullRequest ({
title : " Wire up GitHub device-flow login " ,
body : " Adds the device-flow login and poll handlers, and a managed PAT path. " ,
" url " : " https://github.com/octocat/hello-world/pull/42 " ,
" html_url " : " https://github.com/octocat/hello-world/pull/42 "
" message " : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters (for example, an empty title). Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to a global-no-realm RPC. Omit the realm header on this route.
" code " : " admin_unauthorized " ,
" message " : " memory administration requires a valid admin token "
Error Code Title Description Resolution admin_unauthorizedRejected by the daemon’s own admin gate The request was refused by the server’s admin gate. Run the daemon with socket auth and no separate admin capability. forbiddenForbidden (not via the Hoody proxy) The request did not reach the service through the public endpoint. Reach the agent through hoody-proxy.
" message " : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
" code " : " payload_too_large " ,
" message " : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap. Reduce the request body below the limit (default 8 MiB).
" message " : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded. Honor Retry-After and retry.
" code " : " internal_error " ,
" message " : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
" code " : " service_unavailable " ,
" message " : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request. Honor Retry-After and retry.