{"openapi":"3.1.0","info":{"title":"GitHub Releases (BYOK) API","version":"0.1.0","description":"GitHub Releases (BYOK) lets an AI assistant read your own GitHub Releases data through the GitHub Releases API with a key you supply (GitHub personal access token (repo scope for private repositories)). Read-only: 8 tools (get_latest_release, get_release_by_tag, get_release, list_release_assets, get_release_asset, list_tags, get_deployment, get_deployment_status). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-github-releases.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-github-releases/docs"},"termsOfService":"https://connectorbay.com/byok-github-releases/terms"},"servers":[{"url":"https://byok-github-releases.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-github-releases/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_latest_release":{"post":{"operationId":"get_latest_release","summary":"Get the most recent published, non-draft, non-prerelease release of a repository with tag, name, notes and publish date.","description":"Get the most recent published, non-draft, non-prerelease release of a repository with tag, name, notes and publish date. Use for \"What is the latest release of octocat/Hello-World and what changed in it\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"}},"required":["owner","repo"],"title":"get_latest_releaseArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_release_by_tag":{"post":{"operationId":"get_release_by_tag","summary":"Get one release by its tag name, for example v1.0.0, with name, notes, flags and publish date. Use for \"Show the release","description":"Get one release by its tag name, for example v1.0.0, with name, notes, flags and publish date. Use for \"Show the release notes of tag v1.0.0 in octocat/Hello-World\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"tag":{"description":"Release tag name, for example 'v1.0.0'.","maxLength":200,"title":"Tag","type":"string"}},"required":["owner","repo","tag"],"title":"get_release_by_tagArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_release":{"post":{"operationId":"get_release","summary":"Get one release by its numeric ID with tag, name, notes, flags and publish date. Use for \"Describe release 1 of octocat/","description":"Get one release by its numeric ID with tag, name, notes, flags and publish date. Use for \"Describe release 1 of octocat/Hello-World\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"release_id":{"description":"Numeric ID of the release (the id field of a release answer).","title":"Release Id","type":"integer"}},"required":["owner","repo","release_id"],"title":"get_releaseArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_release_assets":{"post":{"operationId":"list_release_assets","summary":"List the downloadable files attached to a release with size, content type, checksum digest and download count. Use for \"","description":"List the downloadable files attached to a release with size, content type, checksum digest and download count. Use for \"Which files are attached to release 1 of octocat/Hello-World and how often were they downloaded\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"release_id":{"description":"Numeric ID of the release.","title":"Release Id","type":"integer"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100, default 30).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["owner","repo","release_id"],"title":"list_release_assetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_release_asset":{"post":{"operationId":"get_release_asset","summary":"Get one release asset by its numeric ID: name, size, checksum digest, download count and uploader. Use for \"How many tim","description":"Get one release asset by its numeric ID: name, size, checksum digest, download count and uploader. Use for \"How many times was release asset 99 of octocat/Hello-World downloaded\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"asset_id":{"description":"Numeric ID of the release asset (from list_release_assets).","title":"Asset Id","type":"integer"}},"required":["owner","repo","asset_id"],"title":"get_release_assetArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tags":{"post":{"operationId":"list_tags","summary":"List a repository's Git tags with the commit SHA each points to, in GitHub's default order. Use for \"Which tags does oct","description":"List a repository's Git tags with the commit SHA each points to, in GitHub's default order. Use for \"Which tags does octocat/Hello-World have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100, default 30).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["owner","repo"],"title":"list_tagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_deployment":{"post":{"operationId":"get_deployment","summary":"Get one deployment by its numeric ID: commit, ref, environment, task, creator and production flag. Use for \"Describe dep","description":"Get one deployment by its numeric ID: commit, ref, environment, task, creator and production flag. Use for \"Describe deployment 12 of octocat/Hello-World\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"deployment_id":{"description":"Numeric ID of the deployment.","title":"Deployment Id","type":"integer"}},"required":["owner","repo","deployment_id"],"title":"get_deploymentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_deployment_status":{"post":{"operationId":"get_deployment_status","summary":"Get one status update of a deployment by its numeric ID: state (queued, in_progress, success, failure), environment, des","description":"Get one status update of a deployment by its numeric ID: state (queued, in_progress, success, failure), environment, description and times. Use for \"What was the outcome of status 3 of deployment 12 in octocat/Hello-World\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner":{"description":"Account that owns the repository (user or organization login), for example 'octocat'.","maxLength":200,"title":"Owner","type":"string"},"repo":{"description":"Repository name without the owner, for example 'Hello-World'.","maxLength":200,"title":"Repo","type":"string"},"deployment_id":{"description":"Numeric ID of the deployment.","title":"Deployment Id","type":"integer"},"status_id":{"description":"Numeric ID of the deployment status.","title":"Status Id","type":"integer"}},"required":["owner","repo","deployment_id","status_id"],"title":"get_deployment_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}