Files
multica/server/pkg/openconnector/testdata/setup_github.json
T
klinsmayaandClaude Fable 5.1 f23926b2d6 feat(server): add open-connector admin API client
Standalone SDK for a self-hosted open-connector instance: provider
catalog and setup, OAuth client configs, OAuth and API-key connection
flows, connection deletion, and runtime token management. Responses
are unwrapped per path family (/v1 envelope vs bare /api JSON); secrets
in returned structs are redacted from String, GoString and slog output.
Tests replay recorded responses from a real instance.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01XqqpKySn2iWtXriK3Gsgak
2026-10-20 17:13:24 +00:00

1 line
2.9 KiB
JSON

{"success":true,"message":"OK","data":{"service":"github","auth":[{"type":"oauth2","clientFields":[{"key":"clientId","label":"Client ID","inputType":"text","required":true,"secret":false},{"key":"clientSecret","label":"Client secret","inputType":"password","required":true,"secret":true}],"scopes":["read:user","user:email","repo","workflow","delete_repo"],"authorizationOptions":[{"id":"read:user","label":"Account profile","description":"Identify the connected GitHub account.","required":true,"defaultSelected":true,"risk":"standard"},{"id":"repo","label":"Repositories","description":"Read and modify public and private repositories.","required":false,"defaultSelected":true,"risk":"sensitive"},{"id":"user:email","label":"Email addresses","description":"Read the account's email addresses.","required":false,"defaultSelected":false,"risk":"sensitive"},{"id":"workflow","label":"Workflows","description":"Update GitHub Actions workflow files.","required":false,"defaultSelected":false,"risk":"sensitive","requires":["repo"]},{"id":"delete_repo","label":"Delete repositories","description":"Permanently delete repositories.","required":false,"defaultSelected":false,"risk":"destructive"}]},{"type":"api_key","fields":[{"key":"apiKey","label":"Personal access token","inputType":"password","required":true,"secret":true,"placeholder":"github_pat_...","description":"GitHub personal access token used with the Authorization Bearer header. Fine-grained tokens are recommended."}]},{"type":"custom_credential","label":"GitHub App installation","description":"Authenticate as a GitHub App installed on an account. The runtime signs a JWT with the App's private key and mints one-hour installation access tokens on demand, so no token is pasted or stored. The token can read the repositories the installation selected plus the content of any public repository; user-only actions such as get_current_user are not supported.","fields":[{"key":"appId","label":"App ID","inputType":"text","required":true,"secret":false,"placeholder":"1234567","description":"The numeric App ID shown on the GitHub App's settings page under About."},{"key":"installationId","label":"Installation ID","inputType":"text","required":true,"secret":false,"placeholder":"87654321","description":"The numeric id of the installation to act as, from the installation's settings URL (…/settings/installations/<id>) or the installation_id query parameter of the post-install redirect."},{"key":"privateKey","label":"Private key (.pem)","inputType":"textarea","required":true,"secret":true,"placeholder":"-----BEGIN RSA PRIVATE KEY-----","description":"The full contents of the private key file generated on the GitHub App's settings page, an RSA key in PEM format. Escaped \\n line breaks are accepted."}]}],"oauthClient":{"configured":false,"customClientAvailable":false,"expectedRedirectUri":"http://127.0.0.1:3000/oauth/callback","missingFields":["clientId","clientSecret"]}},"meta":{}}