{"openapi":"3.1.0","info":{"title":"GitHub Pulls (BYOK) API","version":"0.1.0","description":"GitHub Pulls (BYOK) lets an AI assistant read your own GitHub Pulls data through the GitHub Pulls API with a key you supply (GitHub personal access token (repo scope for private repositories)). Read-only: 8 tools (get_pull_request, list_pull_request_files, list_pull_request_commits, list_requested_reviewers, list_pull_request_review_comments, list_repository_review_comments,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-github-pulls.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-github-pulls/docs"},"termsOfService":"https://connectorbay.com/byok-github-pulls/terms"},"servers":[{"url":"https://byok-github-pulls.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-github-pulls/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_pull_request":{"post":{"operationId":"get_pull_request","summary":"Get one pull request: state, draft and merge flags, mergeable state, branches, size (additions, deletions, files, commit","description":"Get one pull request: state, draft and merge flags, mergeable state, branches, size (additions, deletions, files, commits) and comment counts. Use for \"How big is pull request 1347 of octocat/Hello-World and can it be merged\".","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"},"pull_number":{"description":"Pull request number within the repository, for example 1347.","title":"Pull Number","type":"integer"}},"required":["owner","repo","pull_number"],"title":"get_pull_requestArguments","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_pull_request_files":{"post":{"operationId":"list_pull_request_files","summary":"List the files a pull request changes with status (added, modified, removed), additions, deletions and previous name; th","description":"List the files a pull request changes with status (added, modified, removed), additions, deletions and previous name; the diff text itself is left out. Use for \"Which files does pull request 1347 of octocat/Hello-World change\".","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"},"pull_number":{"description":"Pull request number within the repository, for example 1347.","title":"Pull Number","type":"integer"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many files to return (1 to 100, default 30; the API lists at most 3000).","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","pull_number"],"title":"list_pull_request_filesArguments","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_pull_request_commits":{"post":{"operationId":"list_pull_request_commits","summary":"List the commits of a pull request (oldest first, at most 250) with SHA, message, author name and date. Use for \"What co","description":"List the commits of a pull request (oldest first, at most 250) with SHA, message, author name and date. Use for \"What commits are in pull request 1347 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"},"pull_number":{"description":"Pull request number within the repository, for example 1347.","title":"Pull Number","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","pull_number"],"title":"list_pull_request_commitsArguments","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_requested_reviewers":{"post":{"operationId":"list_requested_reviewers","summary":"List the users and teams whose review has been requested on a pull request and not yet given. Use for \"Who still needs t","description":"List the users and teams whose review has been requested on a pull request and not yet given. Use for \"Who still needs to review pull request 1347 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"},"pull_number":{"description":"Pull request number within the repository, for example 1347.","title":"Pull Number","type":"integer"}},"required":["owner","repo","pull_number"],"title":"list_requested_reviewersArguments","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_pull_request_review_comments":{"post":{"operationId":"list_pull_request_review_comments","summary":"List the inline code comments on a pull request with file, line, author and time; the comment text is left out. Use for ","description":"List the inline code comments on a pull request with file, line, author and time; the comment text is left out. Use for \"Which lines of pull request 1347 of octocat/Hello-World have review comments\".","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"},"pull_number":{"description":"Pull request number within the repository, for example 1347.","title":"Pull Number","type":"integer"},"sort":{"anyOf":[{"enum":["created","updated"],"type":"string"},{"type":"null"}],"default":"created","description":"Order by created (default) or updated.","title":"Sort"},"direction":{"anyOf":[{"enum":["desc","asc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc. Ignored without sort.","title":"Direction"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only comments updated after this ISO 8601 time, for example 2026-01-01T00:00:00Z.","title":"Since"},"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","pull_number"],"title":"list_pull_request_review_commentsArguments","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_repository_review_comments":{"post":{"operationId":"list_repository_review_comments","summary":"List inline review comments across all pull requests of a repository with pull request, file, line, author and time; the","description":"List inline review comments across all pull requests of a repository with pull request, file, line, author and time; the comment text is left out. Use for \"What review comments were added recently across 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"},"sort":{"anyOf":[{"enum":["created","updated","created_at"],"type":"string"},{"type":"null"}],"default":"created","description":"Order by created (default) or updated.","title":"Sort"},"direction":{"anyOf":[{"enum":["desc","asc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc. Ignored without sort.","title":"Direction"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only comments updated after this ISO 8601 time, for example 2026-01-01T00:00:00Z.","title":"Since"},"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_repository_review_commentsArguments","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_pull_requests_for_commit":{"post":{"operationId":"list_pull_requests_for_commit","summary":"List the pull requests that contain a given commit SHA, with state, branches and merge time. Use for \"Which pull request","description":"List the pull requests that contain a given commit SHA, with state, branches and merge time. Use for \"Which pull request introduced commit 6dcb09b 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"},"commit_sha":{"description":"Full or abbreviated commit SHA.","maxLength":200,"title":"Commit Sha","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","commit_sha"],"title":"list_pull_requests_for_commitArguments","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_review_comments_for_review":{"post":{"operationId":"list_review_comments_for_review","summary":"List the inline comments that belong to one pull request review, with file, line and time; the comment text is left out.","description":"List the inline comments that belong to one pull request review, with file, line and time; the comment text is left out. Use for \"Which lines did review 42 of pull request 1347 comment on\".","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"},"pull_number":{"description":"Pull request number within the repository, for example 1347.","title":"Pull Number","type":"integer"},"review_id":{"description":"Numeric ID of the review (from the pull request review list).","title":"Review 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","pull_number","review_id"],"title":"list_review_comments_for_reviewArguments","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}}}}