Corsair
PluginsGitHub

GitHub API Endpoints

Complete reference for all GitHub API endpoints

The GitHub plugin provides full access to GitHub's API through a typed interface. All endpoints are organized by resource type and automatically handle authentication, rate limiting, and error handling.

New to Corsair? Learn about core concepts like API access, authentication, and error handling before diving into specific endpoints.

Full Implementation: For the complete, up-to-date list of all endpoints and their implementations, see the GitHub plugin source code on GitHub.

Issues

Manage issues, comments, and labels.

list

issues.list

List issues for a repository or user.

const issues = await corsair.github.api.issues.list({
    owner: "octocat",
    repo: "Hello-World",
    state: "open",
});

Parameters:

NameTypeRequiredDescription
ownerstringNoRepository owner (required if repo is provided)
repostringNoRepository name (required if owner is provided)
milestonestringNoFilter by milestone
state'open' | 'closed' | 'all'NoFilter by state (default: 'open')
assigneestringNoFilter by assignee
creatorstringNoFilter by creator
mentionedstringNoFilter by mentioned user
labelsstringNoComma-separated label names
sort'created' | 'updated' | 'comments'NoSort field (default: 'created')
direction'asc' | 'desc'NoSort direction (default: 'desc')
sincestringNoOnly show issues updated after this date
perPagenumberNoResults per page (max: 100)
pagenumberNoPage number

get

issues.get

Get a specific issue.

const issue = await corsair.github.api.issues.get({
    owner: "octocat",
    repo: "Hello-World",
    issueNumber: 1,
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
issueNumbernumberYesIssue number

create

issues.create

Create a new issue.

const issue = await corsair.github.api.issues.create({
    owner: "octocat",
    repo: "Hello-World",
    title: "Bug: Login form not working",
    body: "The login form is not responding to user input.",
    labels: ["bug", "priority-high"],
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
titlestring | numberYesIssue title
bodystringNoIssue body
assigneestring | nullNoAssignee username
milestonestring | number | nullNoMilestone number or title
labelsArray<string | object>NoArray of label names or label objects
assigneesArray<string>NoArray of assignee usernames

update

issues.update

Update an existing issue.

await corsair.github.api.issues.update({
    owner: "octocat",
    repo: "Hello-World",
    issueNumber: 1,
    state: "closed",
    stateReason: "completed",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
issueNumbernumberYesIssue number
titlestring | number | nullNoNew title
bodystring | nullNoNew body
assigneestring | nullNoAssignee username
state'open' | 'closed'NoState
stateReason'completed' | 'not_planned' | 'duplicate' | 'reopened' | nullNoReason for state change
milestonestring | number | nullNoMilestone
labelsArray<string | object>NoLabels
assigneesArray<string>NoAssignees

createComment

issues.createComment

Add a comment to an issue.

const comment = await corsair.github.api.issues.createComment({
    owner: "octocat",
    repo: "Hello-World",
    issueNumber: 1,
    body: "This looks good to me!",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
issueNumbernumberYesIssue number
bodystringYesComment body

Pull Requests

Manage pull requests, reviews, and merge operations.

list

pullRequests.list

List pull requests for a repository.

const pullRequests = await corsair.github.api.pullRequests.list({
    owner: "octocat",
    repo: "Hello-World",
    state: "open",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
state'open' | 'closed' | 'all'NoFilter by state
headstringNoFilter by head branch
basestringNoFilter by base branch
sort'created' | 'updated' | 'popularity' | 'long-running'NoSort field
direction'asc' | 'desc'NoSort direction
perPagenumberNoResults per page
pagenumberNoPage number

get

pullRequests.get

Get a specific pull request.

const pullRequest = await corsair.github.api.pullRequests.get({
    owner: "octocat",
    repo: "Hello-World",
    pullNumber: 1,
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
pullNumbernumberYesPull request number

listReviews

pullRequests.listReviews

List reviews for a pull request.

const reviews = await corsair.github.api.pullRequests.listReviews({
    owner: "octocat",
    repo: "Hello-World",
    pullNumber: 1,
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
pullNumbernumberYesPull request number
perPagenumberNoResults per page
pagenumberNoPage number

createReview

pullRequests.createReview

Create a review for a pull request.

const review = await corsair.github.api.pullRequests.createReview({
    owner: "octocat",
    repo: "Hello-World",
    pullNumber: 1,
    event: "APPROVE",
    body: "Looks good!",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
pullNumbernumberYesPull request number
commitIdstringNoSHA of commit to review
bodystringNoReview body
event'APPROVE' | 'REQUEST_CHANGES' | 'COMMENT'NoReview event
commentsArray<object>NoArray of review comments

Repositories

Manage repositories, branches, commits, and content.

list

repositories.list

List repositories for a user or organization.

const repos = await corsair.github.api.repositories.list({
    owner: "octocat",
    type: "all",
});

Parameters:

NameTypeRequiredDescription
ownerstringNoUser or organization name
type'all' | 'owner' | 'public' | 'private' | 'member'NoRepository type
sort'created' | 'updated' | 'pushed' | 'full_name'NoSort field
direction'asc' | 'desc'NoSort direction
perPagenumberNoResults per page
pagenumberNoPage number

get

repositories.get

Get a specific repository.

const repo = await corsair.github.api.repositories.get({
    owner: "octocat",
    repo: "Hello-World",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name

listBranches

repositories.listBranches

List branches for a repository.

const branches = await corsair.github.api.repositories.listBranches({
    owner: "octocat",
    repo: "Hello-World",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
protectedbooleanNoFilter by protected status
perPagenumberNoResults per page
pagenumberNoPage number

listCommits

repositories.listCommits

List commits for a repository.

const commits = await corsair.github.api.repositories.listCommits({
    owner: "octocat",
    repo: "Hello-World",
    since: "2024-01-01T00:00:00Z",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
shastringNoSHA or branch to start listing commits from
pathstringNoFilter by file path
authorstringNoFilter by author
committerstringNoFilter by committer
sincestringNoOnly show commits after this date
untilstringNoOnly show commits before this date
perPagenumberNoResults per page
pagenumberNoPage number

getContent

repositories.getContent

Get the contents of a file or directory.

const content = await corsair.github.api.repositories.getContent({
    owner: "octocat",
    repo: "Hello-World",
    path: "README.md",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
pathstringYesFile or directory path
refstringNoBranch, tag, or commit SHA

Releases

Manage releases and release assets.

list

releases.list

List releases for a repository.

const releases = await corsair.github.api.releases.list({
    owner: "octocat",
    repo: "Hello-World",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
perPagenumberNoResults per page
pagenumberNoPage number

get

releases.get

Get a specific release.

const release = await corsair.github.api.releases.get({
    owner: "octocat",
    repo: "Hello-World",
    releaseId: 1,
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
releaseIdnumberYesRelease ID

create

releases.create

Create a new release.

const release = await corsair.github.api.releases.create({
    owner: "octocat",
    repo: "Hello-World",
    tagName: "v1.0.0",
    name: "Version 1.0.0",
    body: "Initial release",
    draft: false,
    prerelease: false,
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
tagNamestringYesTag name for the release
targetCommitishstringNoTarget branch or commit SHA
namestringNoRelease name
bodystringNoRelease notes
draftbooleanNoWhether release is a draft
prereleasebooleanNoWhether release is a prerelease
generateReleaseNotesbooleanNoAuto-generate release notes

update

releases.update

Update an existing release.

await corsair.github.api.releases.update({
    owner: "octocat",
    repo: "Hello-World",
    releaseId: 1,
    name: "Updated Release Name",
    body: "Updated release notes",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
releaseIdnumberYesRelease ID
tagNamestringNoNew tag name
targetCommitishstringNoNew target commit
namestringNoNew release name
bodystringNoNew release notes
draftbooleanNoDraft status
prereleasebooleanNoPrerelease status

Workflows

Manage GitHub Actions workflows and runs.

list

workflows.list

List workflows for a repository.

const workflows = await corsair.github.api.workflows.list({
    owner: "octocat",
    repo: "Hello-World",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
perPagenumberNoResults per page
pagenumberNoPage number

get

workflows.get

Get a specific workflow.

const workflow = await corsair.github.api.workflows.get({
    owner: "octocat",
    repo: "Hello-World",
    workflowId: 123456,
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
workflowIdnumber | stringYesWorkflow ID or filename

listRuns

workflows.listRuns

List workflow runs.

const runs = await corsair.github.api.workflows.listRuns({
    owner: "octocat",
    repo: "Hello-World",
    status: "success",
});

Parameters:

NameTypeRequiredDescription
ownerstringYesRepository owner
repostringYesRepository name
actorstringNoFilter by actor
branchstringNoFilter by branch
eventstringNoFilter by event
status'completed' | 'action_required' | 'cancelled' | 'failure' | 'neutral' | 'skipped' | 'stale' | 'success' | 'timed_out' | 'in_progress' | 'queued' | 'requested' | 'waiting' | 'pending'NoFilter by status
perPagenumberNoResults per page
pagenumberNoPage number
createdstringNoFilter by creation date
excludePullRequestsbooleanNoExclude pull request runs
checkSuiteIdnumberNoFilter by check suite ID
headShastringNoFilter by head SHA