mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-28 03:00:29 -04:00
* feat(sheets): added sheet selector for microsoft excel and google sheets tools * upgrade generate docs script * updated tests * added sheet-selector to tool-input * added cursor docs
1539 lines
57 KiB
Plaintext
1539 lines
57 KiB
Plaintext
---
|
|
title: GitHub
|
|
description: Interact with GitHub or trigger workflows from GitHub events
|
|
---
|
|
|
|
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
|
|
|
<BlockInfoCard
|
|
type="github_v2"
|
|
color="#181C1E"
|
|
/>
|
|
|
|
## Usage Instructions
|
|
|
|
Integrate Github into the workflow. Can get get PR details, create PR comment, get repository info, and get latest commit. Can be used in trigger mode to trigger a workflow when a PR is created, commented on, or a commit is pushed.
|
|
|
|
|
|
|
|
## Tools
|
|
|
|
### `github_pr`
|
|
|
|
Fetch PR details including diff and files changed
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Pull request ID |
|
|
| `number` | number | Pull request number |
|
|
| `title` | string | PR title |
|
|
| `state` | string | PR state \(open/closed\) |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `diff_url` | string | Raw diff URL |
|
|
| `body` | string | PR description |
|
|
| `user` | json | User who created the PR |
|
|
| `head` | json | Head branch info |
|
|
| `base` | json | Base branch info |
|
|
| `merged` | boolean | Whether PR is merged |
|
|
| `mergeable` | boolean | Whether PR is mergeable |
|
|
| `merged_by` | json | User who merged the PR |
|
|
| `comments` | number | Number of comments |
|
|
| `review_comments` | number | Number of review comments |
|
|
| `commits` | number | Number of commits |
|
|
| `additions` | number | Lines added |
|
|
| `deletions` | number | Lines deleted |
|
|
| `changed_files` | number | Number of changed files |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
| `closed_at` | string | Close timestamp |
|
|
| `merged_at` | string | Merge timestamp |
|
|
| `files` | array | Array of changed file objects |
|
|
|
|
### `github_comment`
|
|
|
|
Create comments on GitHub PRs
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `body` | string | Yes | Comment content |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `path` | string | No | File path for review comment |
|
|
| `position` | number | No | Line number for review comment |
|
|
| `commentType` | string | No | Type of comment \(pr_comment or file_comment\) |
|
|
| `line` | number | No | Line number for review comment |
|
|
| `side` | string | No | Side of the diff \(LEFT or RIGHT\) |
|
|
| `commitId` | string | No | The SHA of the commit to comment on |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Comment ID |
|
|
| `body` | string | Comment body |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `user` | json | User who created the comment |
|
|
| `path` | string | File path \(if file comment\) |
|
|
| `line` | number | Line number |
|
|
| `side` | string | Diff side |
|
|
| `commit_id` | string | Commit ID |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_repo_info`
|
|
|
|
Retrieve comprehensive GitHub repository metadata including stars, forks, issues, and primary language. Supports both public and private repositories with optional authentication.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Repository ID |
|
|
| `name` | string | Repository name |
|
|
| `full_name` | string | Full repository name \(owner/repo\) |
|
|
| `description` | string | Repository description |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `homepage` | string | Homepage URL |
|
|
| `language` | string | Primary programming language |
|
|
| `default_branch` | string | Default branch name |
|
|
| `visibility` | string | Repository visibility \(public/private\) |
|
|
| `private` | boolean | Whether the repository is private |
|
|
| `fork` | boolean | Whether this is a fork |
|
|
| `archived` | boolean | Whether the repository is archived |
|
|
| `disabled` | boolean | Whether the repository is disabled |
|
|
| `stargazers_count` | number | Number of stars |
|
|
| `watchers_count` | number | Number of watchers |
|
|
| `forks_count` | number | Number of forks |
|
|
| `open_issues_count` | number | Number of open issues |
|
|
| `topics` | array | Repository topics |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
| `pushed_at` | string | Last push timestamp |
|
|
| `owner` | json | Repository owner object |
|
|
| `license` | json | License information |
|
|
|
|
### `github_latest_commit`
|
|
|
|
Retrieve the latest commit from a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `branch` | string | No | Branch name \(defaults to the repository's default branch\) |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `sha` | string | Commit SHA |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `commit` | json | Commit info with message, author, committer |
|
|
| `author` | json | Author user object |
|
|
| `committer` | json | Committer user object |
|
|
|
|
### `github_issue_comment`
|
|
|
|
Create a comment on a GitHub issue
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `body` | string | Yes | Comment content |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Comment ID |
|
|
| `body` | string | Comment body |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `user` | json | User who created the comment |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_list_issue_comments`
|
|
|
|
List all comments on a GitHub issue
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `since` | string | No | Only show comments updated after this ISO 8601 timestamp |
|
|
| `per_page` | number | No | Number of results per page \(max 100\) |
|
|
| `page` | number | No | Page number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of comment objects |
|
|
| ↳ `id` | number | Comment ID |
|
|
| ↳ `body` | string | Comment body |
|
|
| ↳ `user` | object | User who created the comment |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `updated_at` | string | Last update timestamp |
|
|
| `count` | number | Number of comments returned |
|
|
|
|
### `github_update_comment`
|
|
|
|
Update an existing comment on a GitHub issue or pull request
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `comment_id` | number | Yes | Comment ID |
|
|
| `body` | string | Yes | Updated comment content |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Comment ID |
|
|
| `body` | string | Comment body |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `user` | json | User who updated the comment |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_delete_comment`
|
|
|
|
Delete a comment on a GitHub issue or pull request
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `comment_id` | number | Yes | Comment ID |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `deleted` | boolean | Whether deletion was successful |
|
|
| `comment_id` | number | Deleted comment ID |
|
|
|
|
### `github_list_pr_comments`
|
|
|
|
List all review comments on a GitHub pull request
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `sort` | string | No | Sort by created or updated |
|
|
| `direction` | string | No | Sort direction \(asc or desc\) |
|
|
| `since` | string | No | Only show comments updated after this ISO 8601 timestamp |
|
|
| `per_page` | number | No | Number of results per page \(max 100\) |
|
|
| `page` | number | No | Page number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of review comment objects |
|
|
| ↳ `id` | number | Comment ID |
|
|
| ↳ `body` | string | Comment body |
|
|
| ↳ `path` | string | File path |
|
|
| ↳ `line` | number | Line number |
|
|
| ↳ `user` | object | User who created the comment |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `diff_hunk` | string | Diff context |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `updated_at` | string | Last update timestamp |
|
|
| `count` | number | Number of comments returned |
|
|
|
|
### `github_create_pr`
|
|
|
|
Create a new pull request in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `title` | string | Yes | Pull request title |
|
|
| `head` | string | Yes | The name of the branch where your changes are implemented |
|
|
| `base` | string | Yes | The name of the branch you want the changes pulled into |
|
|
| `body` | string | No | Pull request description \(Markdown\) |
|
|
| `draft` | boolean | No | Create as draft pull request |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Pull request ID |
|
|
| `number` | number | Pull request number |
|
|
| `title` | string | PR title |
|
|
| `state` | string | PR state |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | PR description |
|
|
| `user` | json | User who created the PR |
|
|
| `head` | json | Head branch info |
|
|
| `base` | json | Base branch info |
|
|
| `draft` | boolean | Whether PR is a draft |
|
|
| `merged` | boolean | Whether PR is merged |
|
|
| `mergeable` | boolean | Whether PR is mergeable |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_update_pr`
|
|
|
|
Update an existing pull request in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `title` | string | No | New pull request title |
|
|
| `body` | string | No | New pull request description \(Markdown\) |
|
|
| `state` | string | No | New state \(open or closed\) |
|
|
| `base` | string | No | New base branch name |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | PR ID |
|
|
| `number` | number | PR number |
|
|
| `title` | string | PR title |
|
|
| `state` | string | PR state |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | PR description |
|
|
| `user` | json | User who created the PR |
|
|
| `head` | json | Head branch info |
|
|
| `base` | json | Base branch info |
|
|
| `draft` | boolean | Whether PR is a draft |
|
|
| `merged` | boolean | Whether PR is merged |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_merge_pr`
|
|
|
|
Merge a pull request in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `commit_title` | string | No | Title for the merge commit |
|
|
| `commit_message` | string | No | Extra detail to append to merge commit message |
|
|
| `merge_method` | string | No | Merge method: merge, squash, or rebase |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `sha` | string | Merge commit SHA |
|
|
| `merged` | boolean | Whether merge was successful |
|
|
| `message` | string | Response message |
|
|
|
|
### `github_list_prs`
|
|
|
|
List pull requests in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `state` | string | No | Filter by state: open, closed, or all |
|
|
| `head` | string | No | Filter by head user or branch name \(format: user:ref-name or organization:ref-name\) |
|
|
| `base` | string | No | Filter by base branch name |
|
|
| `sort` | string | No | Sort by: created, updated, popularity, or long-running |
|
|
| `direction` | string | No | Sort direction: asc or desc |
|
|
| `per_page` | number | No | Results per page \(max 100\) |
|
|
| `page` | number | No | Page number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of pull request objects |
|
|
| ↳ `id` | number | PR ID |
|
|
| ↳ `number` | number | PR number |
|
|
| ↳ `title` | string | PR title |
|
|
| ↳ `state` | string | PR state |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `user` | object | Author object |
|
|
| ↳ `head` | object | Head branch info |
|
|
| ↳ `base` | object | Base branch info |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `updated_at` | string | Last update timestamp |
|
|
| `count` | number | Number of PRs returned |
|
|
|
|
### `github_get_pr_files`
|
|
|
|
Get the list of files changed in a pull request
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `per_page` | number | No | Results per page \(max 100\) |
|
|
| `page` | number | No | Page number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of changed file objects |
|
|
| ↳ `filename` | string | File path |
|
|
| ↳ `status` | string | Change status \(added/modified/deleted/renamed\) |
|
|
| ↳ `additions` | number | Lines added |
|
|
| ↳ `deletions` | number | Lines deleted |
|
|
| ↳ `changes` | number | Total changes |
|
|
| ↳ `patch` | string | File diff patch |
|
|
| ↳ `sha` | string | File SHA |
|
|
| ↳ `blob_url` | string | GitHub blob URL |
|
|
| ↳ `raw_url` | string | Raw file URL |
|
|
| ↳ `previous_filename` | string | Previous filename \(for renamed files\) |
|
|
| `count` | number | Total number of files |
|
|
|
|
### `github_close_pr`
|
|
|
|
Close a pull request in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | PR ID |
|
|
| `number` | number | PR number |
|
|
| `title` | string | PR title |
|
|
| `state` | string | PR state \(closed\) |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | PR description |
|
|
| `user` | json | User who created the PR |
|
|
| `head` | json | Head branch info |
|
|
| `base` | json | Base branch info |
|
|
| `draft` | boolean | Whether PR is a draft |
|
|
| `merged` | boolean | Whether PR is merged |
|
|
| `closed_at` | string | Close timestamp |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_request_reviewers`
|
|
|
|
Request reviewers for a pull request
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `pullNumber` | number | Yes | Pull request number |
|
|
| `reviewers` | string | Yes | Comma-separated list of user logins to request reviews from |
|
|
| `team_reviewers` | string | No | Comma-separated list of team slugs to request reviews from |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | PR ID |
|
|
| `number` | number | PR number |
|
|
| `title` | string | PR title |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `requested_reviewers` | array | Array of requested reviewer objects |
|
|
| `requested_teams` | array | Array of requested team objects |
|
|
|
|
### `github_get_file_content`
|
|
|
|
Get the content of a file from a GitHub repository. Supports files up to 1MB. Content is returned decoded and human-readable.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `path` | string | Yes | Path to the file in the repository \(e.g., "src/index.ts"\) |
|
|
| `ref` | string | No | Branch name, tag, or commit SHA \(defaults to repository default branch\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `name` | string | File name |
|
|
| `path` | string | Full path in repository |
|
|
| `sha` | string | Git blob SHA |
|
|
| `size` | number | File size in bytes |
|
|
| `type` | string | Content type \(file/dir/symlink/submodule\) |
|
|
| `content` | string | Decoded file content |
|
|
| `encoding` | string | Content encoding |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `download_url` | string | Direct download URL |
|
|
| `git_url` | string | Git blob API URL |
|
|
| `_links` | json | Related links |
|
|
|
|
### `github_create_file`
|
|
|
|
Create a new file in a GitHub repository. The file content will be automatically Base64 encoded. Supports files up to 1MB.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `path` | string | Yes | Path where the file will be created \(e.g., "src/newfile.ts"\) |
|
|
| `message` | string | Yes | Commit message for this file creation |
|
|
| `content` | string | Yes | File content \(plain text, will be Base64 encoded automatically\) |
|
|
| `branch` | string | No | Branch to create the file in \(defaults to repository default branch\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `content` | json | Created file content info |
|
|
| `commit` | json | Commit information |
|
|
|
|
### `github_update_file`
|
|
|
|
Update an existing file in a GitHub repository. Requires the file SHA. Content will be automatically Base64 encoded. Supports files up to 1MB.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `path` | string | Yes | Path to the file to update \(e.g., "src/index.ts"\) |
|
|
| `message` | string | Yes | Commit message for this file update |
|
|
| `content` | string | Yes | New file content \(plain text, will be Base64 encoded automatically\) |
|
|
| `sha` | string | Yes | The blob SHA of the file being replaced \(get from github_get_file_content\) |
|
|
| `branch` | string | No | Branch to update the file in \(defaults to repository default branch\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `content` | json | Updated file content info |
|
|
| `commit` | json | Commit information |
|
|
|
|
### `github_delete_file`
|
|
|
|
Delete a file from a GitHub repository. Requires the file SHA. This operation cannot be undone through the API.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `path` | string | Yes | Path to the file to delete \(e.g., "src/oldfile.ts"\) |
|
|
| `message` | string | Yes | Commit message for this file deletion |
|
|
| `sha` | string | Yes | The blob SHA of the file being deleted \(get from github_get_file_content\) |
|
|
| `branch` | string | No | Branch to delete the file from \(defaults to repository default branch\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `content` | json | File content info \(null for delete\) |
|
|
| `commit` | json | Commit information |
|
|
|
|
### `github_get_tree`
|
|
|
|
Get the contents of a directory in a GitHub repository. Returns a list of files and subdirectories. Use empty path or omit to get root directory contents.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `path` | string | No | Directory path \(e.g., "src/components"\). Leave empty for root directory. |
|
|
| `ref` | string | No | Branch name, tag, or commit SHA \(defaults to repository default branch\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of file/directory objects |
|
|
| ↳ `name` | string | File or directory name |
|
|
| ↳ `path` | string | Full path in repository |
|
|
| ↳ `sha` | string | Git object SHA |
|
|
| ↳ `size` | number | Size in bytes |
|
|
| ↳ `type` | string | Type \(file/dir/symlink/submodule\) |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `download_url` | string | Direct download URL |
|
|
| ↳ `git_url` | string | Git blob API URL |
|
|
| ↳ `url` | string | API URL for this item |
|
|
| ↳ `_links` | json | Related links |
|
|
| `count` | number | Total number of items |
|
|
|
|
### `github_list_branches`
|
|
|
|
List all branches in a GitHub repository. Optionally filter by protected status and control pagination.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `protected` | boolean | No | Filter branches by protection status |
|
|
| `per_page` | number | No | Number of results per page \(max 100, default 30\) |
|
|
| `page` | number | No | Page number for pagination \(default 1\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of branch objects |
|
|
| ↳ `name` | string | Branch name |
|
|
| ↳ `commit` | object | Commit info with sha and url |
|
|
| ↳ `protected` | boolean | Whether branch is protected |
|
|
| `count` | number | Number of branches returned |
|
|
|
|
### `github_get_branch`
|
|
|
|
Get detailed information about a specific branch in a GitHub repository, including commit details and protection status.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `branch` | string | Yes | Branch name |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `name` | string | Branch name |
|
|
| `commit` | json | Commit object with sha, url, etc. |
|
|
| `protected` | boolean | Whether branch is protected |
|
|
| `protection` | json | Protection settings object |
|
|
| `protection_url` | string | URL to protection settings |
|
|
|
|
### `github_create_branch`
|
|
|
|
Create a new branch in a GitHub repository by creating a git reference pointing to a specific commit SHA.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `branch` | string | Yes | Name of the branch to create |
|
|
| `sha` | string | Yes | Commit SHA to point the branch to |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `ref` | string | Full reference name \(refs/heads/branch\) |
|
|
| `node_id` | string | Git ref node ID |
|
|
| `url` | string | API URL for the reference |
|
|
| `object` | json | Git object with type and sha |
|
|
|
|
### `github_delete_branch`
|
|
|
|
Delete a branch from a GitHub repository by removing its git reference. Protected branches cannot be deleted.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `branch` | string | Yes | Name of the branch to delete |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `deleted` | boolean | Whether the branch was deleted |
|
|
| `branch` | string | Name of the deleted branch |
|
|
|
|
### `github_get_branch_protection`
|
|
|
|
Get the branch protection rules for a specific branch, including status checks, review requirements, and restrictions.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `branch` | string | Yes | Branch name |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `url` | string | Protection settings URL |
|
|
| `required_status_checks` | json | Status check requirements |
|
|
| `enforce_admins` | json | Admin enforcement settings |
|
|
| `required_pull_request_reviews` | json | PR review requirements |
|
|
| `restrictions` | json | Push restrictions |
|
|
| `required_linear_history` | json | Linear history requirement |
|
|
| `allow_force_pushes` | json | Force push settings |
|
|
| `allow_deletions` | json | Deletion settings |
|
|
| `block_creations` | json | Creation blocking settings |
|
|
| `required_conversation_resolution` | json | Conversation resolution requirement |
|
|
| `required_signatures` | json | Signature requirements |
|
|
|
|
### `github_update_branch_protection`
|
|
|
|
Update branch protection rules for a specific branch, including status checks, review requirements, admin enforcement, and push restrictions.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `branch` | string | Yes | Branch name |
|
|
| `required_status_checks` | object | Yes | Required status check configuration \(null to disable\). Object with strict \(boolean\) and contexts \(string array\) |
|
|
| `enforce_admins` | boolean | Yes | Whether to enforce restrictions for administrators |
|
|
| `required_pull_request_reviews` | object | Yes | PR review requirements \(null to disable\). Object with optional required_approving_review_count, dismiss_stale_reviews, require_code_owner_reviews |
|
|
| `restrictions` | object | Yes | Push restrictions \(null to disable\). Object with users \(string array\) and teams \(string array\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `url` | string | Protection URL |
|
|
| `required_status_checks` | json | Status check requirements |
|
|
| `enforce_admins` | json | Admin enforcement settings |
|
|
| `required_pull_request_reviews` | json | PR review requirements |
|
|
| `restrictions` | json | Push restrictions |
|
|
| `required_linear_history` | json | Linear history requirement |
|
|
| `allow_force_pushes` | json | Force push settings |
|
|
| `allow_deletions` | json | Deletion settings |
|
|
|
|
### `github_create_issue`
|
|
|
|
Create a new issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `title` | string | Yes | Issue title |
|
|
| `body` | string | No | Issue description/body |
|
|
| `assignees` | string | No | Comma-separated list of usernames to assign to this issue |
|
|
| `labels` | string | No | Comma-separated list of label names to add to this issue |
|
|
| `milestone` | number | No | Milestone number to associate with this issue |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Issue ID |
|
|
| `number` | number | Issue number |
|
|
| `title` | string | Issue title |
|
|
| `state` | string | Issue state \(open/closed\) |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | Issue body/description |
|
|
| `user` | json | User who created the issue |
|
|
| `labels` | array | Array of label objects |
|
|
| `assignees` | array | Array of assignee objects |
|
|
| `milestone` | json | Milestone object |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
| `closed_at` | string | Close timestamp |
|
|
|
|
### `github_update_issue`
|
|
|
|
Update an existing issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `title` | string | No | New issue title |
|
|
| `body` | string | No | New issue description/body |
|
|
| `state` | string | No | Issue state \(open or closed\) |
|
|
| `labels` | array | No | Array of label names \(replaces all existing labels\) |
|
|
| `assignees` | array | No | Array of usernames \(replaces all existing assignees\) |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Issue ID |
|
|
| `number` | number | Issue number |
|
|
| `title` | string | Issue title |
|
|
| `state` | string | Issue state |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | Issue body |
|
|
| `user` | json | User who created the issue |
|
|
| `labels` | array | Array of label objects |
|
|
| `assignees` | array | Array of assignee objects |
|
|
| `milestone` | json | Milestone object |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
| `closed_at` | string | Close timestamp |
|
|
|
|
### `github_list_issues`
|
|
|
|
List issues in a GitHub repository. Note: This includes pull requests as PRs are considered issues in GitHub
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `state` | string | No | Filter by state: open, closed, or all \(default: open\) |
|
|
| `assignee` | string | No | Filter by assignee username |
|
|
| `creator` | string | No | Filter by creator username |
|
|
| `labels` | string | No | Comma-separated list of label names to filter by |
|
|
| `sort` | string | No | Sort by: created, updated, or comments \(default: created\) |
|
|
| `direction` | string | No | Sort direction: asc or desc \(default: desc\) |
|
|
| `per_page` | number | No | Results per page \(max 100, default: 30\) |
|
|
| `page` | number | No | Page number \(default: 1\) |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of issue objects from GitHub API |
|
|
| ↳ `id` | number | Issue ID |
|
|
| ↳ `number` | number | Issue number |
|
|
| ↳ `title` | string | Issue title |
|
|
| ↳ `state` | string | Issue state \(open/closed\) |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `body` | string | Issue body |
|
|
| ↳ `user` | object | User who created the issue |
|
|
| ↳ `labels` | array | Array of label objects |
|
|
| ↳ `assignees` | array | Array of assignee objects |
|
|
| ↳ `milestone` | object | Milestone object |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `updated_at` | string | Last update timestamp |
|
|
| ↳ `closed_at` | string | Close timestamp |
|
|
| `count` | number | Number of issues returned |
|
|
|
|
### `github_get_issue`
|
|
|
|
Get detailed information about a specific issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Issue ID |
|
|
| `number` | number | Issue number |
|
|
| `title` | string | Issue title |
|
|
| `state` | string | Issue state \(open/closed\) |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | Issue body/description |
|
|
| `user` | json | User who created the issue |
|
|
| `labels` | array | Array of label objects |
|
|
| `assignees` | array | Array of assignee objects |
|
|
| `milestone` | json | Milestone object |
|
|
| `comments` | number | Number of comments |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
| `closed_at` | string | Close timestamp |
|
|
| `closed_by` | json | User who closed the issue |
|
|
|
|
### `github_close_issue`
|
|
|
|
Close an issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `state_reason` | string | No | Reason for closing: completed or not_planned |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Issue ID |
|
|
| `number` | number | Issue number |
|
|
| `title` | string | Issue title |
|
|
| `state` | string | Issue state \(closed\) |
|
|
| `state_reason` | string | Reason for closing |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | Issue body |
|
|
| `user` | json | User who created the issue |
|
|
| `labels` | array | Array of label objects |
|
|
| `assignees` | array | Array of assignee objects |
|
|
| `closed_at` | string | Close timestamp |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_add_labels`
|
|
|
|
Add labels to an issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `labels` | string | Yes | Comma-separated list of label names to add to the issue |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of label objects on the issue |
|
|
| ↳ `id` | number | Label ID |
|
|
| ↳ `name` | string | Label name |
|
|
| ↳ `color` | string | Label color |
|
|
| ↳ `description` | string | Label description |
|
|
| `count` | number | Number of labels |
|
|
|
|
### `github_remove_label`
|
|
|
|
Remove a label from an issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `name` | string | Yes | Label name to remove |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Remaining labels on the issue |
|
|
| ↳ `id` | number | Label ID |
|
|
| ↳ `name` | string | Label name |
|
|
| ↳ `color` | string | Label color |
|
|
| ↳ `description` | string | Label description |
|
|
| `count` | number | Number of remaining labels |
|
|
|
|
### `github_add_assignees`
|
|
|
|
Add assignees to an issue in a GitHub repository
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `issue_number` | number | Yes | Issue number |
|
|
| `assignees` | string | Yes | Comma-separated list of usernames to assign to the issue |
|
|
| `apiKey` | string | Yes | GitHub API token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Issue ID |
|
|
| `number` | number | Issue number |
|
|
| `title` | string | Issue title |
|
|
| `state` | string | Issue state |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `body` | string | Issue body |
|
|
| `user` | json | Issue creator |
|
|
| `labels` | array | Array of label objects |
|
|
| `assignees` | array | Array of assignee objects |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_create_release`
|
|
|
|
Create a new release for a GitHub repository. Specify tag name, target commit, title, description, and whether it should be a draft or prerelease.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `tag_name` | string | Yes | The name of the tag for this release |
|
|
| `target_commitish` | string | No | Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Defaults to the repository default branch. |
|
|
| `name` | string | No | The name of the release |
|
|
| `body` | string | No | Text describing the contents of the release \(markdown supported\) |
|
|
| `draft` | boolean | No | true to create a draft \(unpublished\) release, false to create a published one |
|
|
| `prerelease` | boolean | No | true to identify the release as a prerelease, false to identify as a full release |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Release ID |
|
|
| `tag_name` | string | Git tag name |
|
|
| `name` | string | Release name |
|
|
| `body` | string | Release description |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `tarball_url` | string | Tarball download URL |
|
|
| `zipball_url` | string | Zipball download URL |
|
|
| `draft` | boolean | Whether this is a draft |
|
|
| `prerelease` | boolean | Whether this is a prerelease |
|
|
| `author` | json | Release author |
|
|
| `assets` | array | Release assets |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `published_at` | string | Publication timestamp |
|
|
|
|
### `github_update_release`
|
|
|
|
Update an existing GitHub release. Modify tag name, target commit, title, description, draft status, or prerelease status.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `release_id` | number | Yes | The unique identifier of the release |
|
|
| `tag_name` | string | No | The name of the tag |
|
|
| `target_commitish` | string | No | Specifies the commitish value for where the tag is created from |
|
|
| `name` | string | No | The name of the release |
|
|
| `body` | string | No | Text describing the contents of the release \(markdown supported\) |
|
|
| `draft` | boolean | No | true to set as draft, false to publish |
|
|
| `prerelease` | boolean | No | true to identify as a prerelease, false for a full release |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Release ID |
|
|
| `tag_name` | string | Git tag name |
|
|
| `name` | string | Release name |
|
|
| `body` | string | Release description |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `tarball_url` | string | Tarball download URL |
|
|
| `zipball_url` | string | Zipball download URL |
|
|
| `draft` | boolean | Whether this is a draft |
|
|
| `prerelease` | boolean | Whether this is a prerelease |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `published_at` | string | Publication timestamp |
|
|
|
|
### `github_list_releases`
|
|
|
|
List all releases for a GitHub repository. Returns release information including tags, names, and download URLs.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `per_page` | number | No | Number of results per page \(max 100\) |
|
|
| `page` | number | No | Page number of the results to fetch |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of release objects |
|
|
| ↳ `id` | number | Release ID |
|
|
| ↳ `tag_name` | string | Git tag name |
|
|
| ↳ `name` | string | Release name |
|
|
| ↳ `body` | string | Release description |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `tarball_url` | string | Tarball download URL |
|
|
| ↳ `zipball_url` | string | Zipball download URL |
|
|
| ↳ `draft` | boolean | Whether this is a draft |
|
|
| ↳ `prerelease` | boolean | Whether this is a prerelease |
|
|
| ↳ `author` | object | Release author |
|
|
| ↳ `assets` | array | Release assets |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `published_at` | string | Publication timestamp |
|
|
| `count` | number | Number of releases returned |
|
|
|
|
### `github_get_release`
|
|
|
|
Get detailed information about a specific GitHub release by ID. Returns release metadata including assets and download URLs.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `release_id` | number | Yes | The unique identifier of the release |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Release ID |
|
|
| `tag_name` | string | Git tag name |
|
|
| `name` | string | Release name |
|
|
| `body` | string | Release description |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `tarball_url` | string | Tarball download URL |
|
|
| `zipball_url` | string | Zipball download URL |
|
|
| `draft` | boolean | Whether this is a draft |
|
|
| `prerelease` | boolean | Whether this is a prerelease |
|
|
| `author` | json | Release author object |
|
|
| `assets` | array | Array of release asset objects |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `published_at` | string | Publication timestamp |
|
|
| `target_commitish` | string | Target commit/branch |
|
|
|
|
### `github_delete_release`
|
|
|
|
Delete a GitHub release by ID. This permanently removes the release but does not delete the associated Git tag.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `release_id` | number | Yes | The unique identifier of the release to delete |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `deleted` | boolean | Whether the release was deleted |
|
|
| `release_id` | number | ID of the deleted release |
|
|
|
|
### `github_list_workflows`
|
|
|
|
List all workflows in a GitHub repository. Returns workflow details including ID, name, path, state, and badge URL.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `per_page` | number | No | Number of results per page \(default: 30, max: 100\) |
|
|
| `page` | number | No | Page number of results to fetch \(default: 1\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `total_count` | number | Total number of workflows |
|
|
| `items` | array | Array of workflow objects |
|
|
| ↳ `id` | number | Workflow ID |
|
|
| ↳ `node_id` | string | Workflow node ID |
|
|
| ↳ `name` | string | Workflow name |
|
|
| ↳ `path` | string | Path to workflow file |
|
|
| ↳ `state` | string | Workflow state |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `badge_url` | string | Badge URL |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `updated_at` | string | Last update timestamp |
|
|
| ↳ `deleted_at` | string | Deletion timestamp |
|
|
|
|
### `github_get_workflow`
|
|
|
|
Get details of a specific GitHub Actions workflow by ID or filename. Returns workflow information including name, path, state, and badge URL.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `workflow_id` | string | Yes | Workflow ID \(number\) or workflow filename \(e.g., "main.yaml"\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Workflow ID |
|
|
| `node_id` | string | Workflow node ID |
|
|
| `name` | string | Workflow name |
|
|
| `path` | string | Path to workflow file |
|
|
| `state` | string | Workflow state \(active/disabled\) |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `badge_url` | string | Badge URL |
|
|
| `url` | string | API URL |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
| `deleted_at` | string | Deletion timestamp |
|
|
|
|
### `github_trigger_workflow`
|
|
|
|
Trigger a workflow dispatch event for a GitHub Actions workflow. The workflow must have a workflow_dispatch trigger configured. Returns 204 No Content on success.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `workflow_id` | string | Yes | Workflow ID \(number\) or workflow filename \(e.g., "main.yaml"\) |
|
|
| `ref` | string | Yes | Git reference \(branch or tag name\) to run the workflow on |
|
|
| `inputs` | object | No | Input keys and values configured in the workflow file |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `triggered` | boolean | Whether workflow was triggered |
|
|
| `workflow_id` | string | Workflow ID or filename |
|
|
| `ref` | string | Git reference used |
|
|
|
|
### `github_list_workflow_runs`
|
|
|
|
List workflow runs for a repository. Supports filtering by actor, branch, event, and status. Returns run details including status, conclusion, and links.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `actor` | string | No | Filter by user who triggered the workflow |
|
|
| `branch` | string | No | Filter by branch name |
|
|
| `event` | string | No | Filter by event type \(e.g., push, pull_request, workflow_dispatch\) |
|
|
| `status` | string | No | Filter by status \(queued, in_progress, completed, waiting, requested, pending\) |
|
|
| `per_page` | number | No | Number of results per page \(default: 30, max: 100\) |
|
|
| `page` | number | No | Page number of results to fetch \(default: 1\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `total_count` | number | Total number of workflow runs |
|
|
| `items` | array | Array of workflow run objects |
|
|
| ↳ `id` | number | Workflow run ID |
|
|
| ↳ `name` | string | Workflow name |
|
|
| ↳ `head_branch` | string | Branch name |
|
|
| ↳ `head_sha` | string | Commit SHA |
|
|
| ↳ `run_number` | number | Run number |
|
|
| ↳ `event` | string | Trigger event |
|
|
| ↳ `status` | string | Run status |
|
|
| ↳ `conclusion` | string | Run conclusion |
|
|
| ↳ `html_url` | string | GitHub web URL |
|
|
| ↳ `created_at` | string | Creation timestamp |
|
|
| ↳ `updated_at` | string | Last update timestamp |
|
|
| ↳ `triggering_actor` | json | User who triggered the run |
|
|
| ↳ `pull_requests` | array | Associated pull requests |
|
|
| ↳ `referenced_workflows` | array | Referenced workflows |
|
|
| ↳ `head_commit` | json | Head commit information |
|
|
| ↳ `run_started_at` | string | Run start timestamp |
|
|
|
|
### `github_get_workflow_run`
|
|
|
|
Get detailed information about a specific workflow run by ID. Returns status, conclusion, timing, and links to the run.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `run_id` | number | Yes | Workflow run ID |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | number | Workflow run ID |
|
|
| `name` | string | Workflow name |
|
|
| `head_branch` | string | Branch name |
|
|
| `head_sha` | string | Commit SHA |
|
|
| `run_number` | number | Run number |
|
|
| `run_attempt` | number | Run attempt number |
|
|
| `event` | string | Trigger event type |
|
|
| `status` | string | Run status |
|
|
| `conclusion` | string | Run conclusion |
|
|
| `workflow_id` | number | Workflow ID |
|
|
| `html_url` | string | GitHub web URL |
|
|
| `logs_url` | string | Logs download URL |
|
|
| `jobs_url` | string | Jobs API URL |
|
|
| `artifacts_url` | string | Artifacts API URL |
|
|
| `triggering_actor` | json | User who triggered the run |
|
|
| `pull_requests` | array | Associated pull requests |
|
|
| `referenced_workflows` | array | Referenced workflows |
|
|
| `head_commit` | json | Head commit information |
|
|
| `run_started_at` | string | Run start timestamp |
|
|
| `created_at` | string | Creation timestamp |
|
|
| `updated_at` | string | Last update timestamp |
|
|
|
|
### `github_cancel_workflow_run`
|
|
|
|
Cancel a workflow run. Returns 202 Accepted if cancellation is initiated, or 409 Conflict if the run cannot be cancelled (already completed).
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `run_id` | number | Yes | Workflow run ID to cancel |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `cancelled` | boolean | Whether cancellation was initiated |
|
|
| `run_id` | number | Workflow run ID |
|
|
|
|
### `github_rerun_workflow`
|
|
|
|
Rerun a workflow run. Optionally enable debug logging for the rerun. Returns 201 Created on success.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner` | string | Yes | Repository owner \(user or organization\) |
|
|
| `repo` | string | Yes | Repository name |
|
|
| `run_id` | number | Yes | Workflow run ID to rerun |
|
|
| `enable_debug_logging` | boolean | No | Enable debug logging for the rerun \(default: false\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `rerun_requested` | boolean | Whether rerun was requested |
|
|
| `run_id` | number | Workflow run ID |
|
|
|
|
### `github_list_projects`
|
|
|
|
List GitHub Projects V2 for an organization or user. Returns up to 20 projects with their details including ID, title, number, URL, and status.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner_type` | string | Yes | Owner type: "org" for organization or "user" for user |
|
|
| `owner_login` | string | Yes | Organization or user login name |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token with project read permissions |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `items` | array | Array of project objects |
|
|
| ↳ `id` | string | Project node ID |
|
|
| ↳ `title` | string | Project title |
|
|
| ↳ `number` | number | Project number |
|
|
| ↳ `url` | string | Project URL |
|
|
| ↳ `closed` | boolean | Whether project is closed |
|
|
| ↳ `public` | boolean | Whether project is public |
|
|
| ↳ `shortDescription` | string | Short description |
|
|
| `totalCount` | number | Total number of projects |
|
|
|
|
### `github_get_project`
|
|
|
|
Get detailed information about a specific GitHub Project V2 by its number. Returns project details including ID, title, description, URL, and status.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner_type` | string | Yes | Owner type: "org" for organization or "user" for user |
|
|
| `owner_login` | string | Yes | Organization or user login name |
|
|
| `project_number` | number | Yes | Project number |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token with project read permissions |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | string | Project node ID |
|
|
| `title` | string | Project title |
|
|
| `number` | number | Project number |
|
|
| `url` | string | Project URL |
|
|
| `closed` | boolean | Whether project is closed |
|
|
| `public` | boolean | Whether project is public |
|
|
| `shortDescription` | string | Short description |
|
|
| `readme` | string | Project readme |
|
|
| `createdAt` | string | Creation timestamp |
|
|
| `updatedAt` | string | Last update timestamp |
|
|
|
|
### `github_create_project`
|
|
|
|
Create a new GitHub Project V2. Requires the owner Node ID (not login name). Returns the created project with ID, title, and URL.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `owner_id` | string | Yes | Owner Node ID \(format: PVT_... or MDQ6...\). Use GitHub GraphQL API to get this ID from organization or user login. |
|
|
| `title` | string | Yes | Project title |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token with project write permissions |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | string | Project node ID |
|
|
| `title` | string | Project title |
|
|
| `number` | number | Project number |
|
|
| `url` | string | Project URL |
|
|
| `closed` | boolean | Whether project is closed |
|
|
| `public` | boolean | Whether project is public |
|
|
| `shortDescription` | string | Short description |
|
|
|
|
### `github_update_project`
|
|
|
|
Update an existing GitHub Project V2. Can update title, description, visibility (public), or status (closed). Requires the project Node ID.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `project_id` | string | Yes | Project Node ID \(format: PVT_...\) |
|
|
| `title` | string | No | New project title |
|
|
| `shortDescription` | string | No | New project short description |
|
|
| `project_public` | boolean | No | Set project visibility \(true = public, false = private\) |
|
|
| `closed` | boolean | No | Set project status \(true = closed, false = open\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token with project write permissions |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | string | Project node ID |
|
|
| `title` | string | Project title |
|
|
| `number` | number | Project number |
|
|
| `url` | string | Project URL |
|
|
| `closed` | boolean | Whether project is closed |
|
|
| `public` | boolean | Whether project is public |
|
|
| `shortDescription` | string | Short description |
|
|
|
|
### `github_delete_project`
|
|
|
|
Delete a GitHub Project V2. This action is permanent and cannot be undone. Requires the project Node ID.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `project_id` | string | Yes | Project Node ID \(format: PVT_...\) |
|
|
| `apiKey` | string | Yes | GitHub Personal Access Token with project admin permissions |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `id` | string | Deleted project node ID |
|
|
| `title` | string | Deleted project title |
|
|
| `number` | number | Deleted project number |
|
|
| `url` | string | Deleted project URL |
|
|
|
|
|