GitHub MCP 服务器

GitHub MCP 服务器是一个提供与 GitHub API 无缝集成的 Model Context Protocol (MCP) 服务器,支持开发者构建自动化工具和应用程序。

  • by lucascampuddu
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 lucascampuddu/github_github-mcp-server

使用说明

GitHub MCP服务器

GitHub MCP服务器是一个 模型上下文协议(MCP) 服务器,提供与GitHub API的无缝集成,实现高级 开发人员和工具的自动化和交互能力。

用例

  • 自动化GitHub工作流和流程。
  • 从GitHub存储库中提取和分析数据。
  • 构建与GitHub生态系统交互的AI驱动工具和应用程序。

远程GitHub MCP服务器

远程GitHub MCP服务器由GitHub托管,提供了最简单的启动和运行方法。如果您的MCP主机不支持远程MCP服务器,请不要担心!您可以使用 GitHub MCP服务器的本地版本 相反。

先决条件

  1. 支持最新MCP规范和远程服务器的MCP主机,例如 VS代码.

安装

使用VS代码

为了快速安装,请使用上面的一键安装按钮之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。确保您正在使用 VS代码1.101 或 稍后 用于远程MCP和OAuth支持。

或者,要手动配置VS Code,请从以下示例中选择适当的JSON块并将其添加到您的主机配置中:

Using OAuthUsing a GitHub PAT
VS Code (version 1.101 or greater)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

在其他MCP主机中的使用

对于以下MCP主机 远程MCP兼容,从下面的示例中选择适当的JSON块并将其添加到您的主机配置中:

Using OAuthUsing a GitHub PAT
{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "authorization_token": "Bearer <your GitHub PAT>"
    }
  }
}

注: 具体的配置格式可能因主机而异。有关远程MCP服务器设置的正确语法和位置,请参阅主机的文档。

配置

看 远程服务器文档 关于如何将其他配置设置传递给远程GitHub MCP服务器。


本地GitHub MCP服务器

先决条件

  1. 要在容器中运行服务器,您需要 码头工人 安装。
  2. 安装Docker后,您还需要确保Docker正在运行。形象是公开的;如果你在pull时出错,你可能有一个过期的令牌,需要 docker logout ghcr.io.
  3. 最后,你需要 创建GitHub个人访问令牌. MCP服务器可以使用许多GitHub API,因此请启用您认为授予AI工具的权限(要了解有关访问令牌的更多信息,请查看 文档).

安装

使用VS代码

为了快速安装,请使用一键安装按钮之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。

在其他MCP主机中的使用

将以下JSON块添加到IDE MCP设置中。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

您可以选择将类似的示例(即不带mcp键)添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。

{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}

更多关于在VS Code中使用MCP服务器工具的信息 代理模式文档.

使用Claude Desktop

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

从源代码构建

如果你没有Docker,你可以使用 go build 在 cmd/github-mcp-server 目录,并使用 github-mcp-server stdio 命令与 GITHUB_PERSONAL_ACCESS_TOKEN 将环境变量设置为您的令牌。要指定生成的输出位置,请使用 -o 旗帜。您应该将服务器配置为使用构建的可执行文件作为其 command例如:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}

工具配置

GitHub MCP Server支持通过以下方式启用或禁用特定功能组 --toolsets 旗帜。这允许您控制哪些GitHub API功能可用于您的人工智能工具。仅启用所需的工具集可以帮助LLM进行工具选择并减少上下文大小。

工具集不限于工具。在适用的情况下,还包括相关的MCP资源和提示。

可用工具集

以下工具集可用(默认情况下都处于打开状态):

工具集 说明
actions GitHub操作工作流和CI/CD操作
context 强烈推荐:提供当前用户上下文和您正在操作的GitHub上下文的工具
code_security 代码扫描警报和安全功能
issues 与问题相关的工具(创建、阅读、更新、评论)
notifications GitHub通知相关工具
pull_requests 拉取请求操作(创建、合并、审核)
repos 与存储库相关的工具(文件操作、分支、提交)
secret_protection 与秘密保护相关的工具,如GitHub秘密扫描
users 与GitHub用户相关的任何内容
experiments 实验特征(不稳定)

指定工具集

要指定LLM可用的工具集,可以通过两种方式传递允许列表:

  1. 使用命令行参数:

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. 使用环境变量:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
    

环境变量 GITHUB_TOOLSETS 如果两者都提供,则优先于命令行参数。

在Docker中使用工具集

使用Docker时,可以将工具集作为环境变量传递:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security,experiments" \
  ghcr.io/github/github-mcp-server

“全部”工具集

特殊工具集 all 可以提供以启用所有可用的工具集,而不管任何其他配置如何:

./github-mcp-server --toolsets all

或者使用环境变量:

GITHUB_TOOLSETS="all" ./github-mcp-server

动态工具发现

备注:此功能目前处于测试阶段,可能无法在所有环境中使用。请测试一下,如果您遇到任何问题,请告诉我们。

您可以启用动态工具集发现,而不是从启用所有工具开始。动态工具集允许MCP主机根据用户提示列出并启用工具集。这应该有助于避免模型被大量可用工具混淆的情况。

使用动态工具发现

使用二进制时,您可以传递 --dynamic-toolsets 旗帜。

./github-mcp-server --dynamic-toolsets

使用Docker时,可以将工具集作为环境变量传递:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_DYNAMIC_TOOLSETS=1 \
  ghcr.io/github/github-mcp-server

只读模式

要以只读模式运行服务器,可以使用 --read-only 旗帜。这将只提供只读工具,防止对存储库、问题、拉取请求等进行任何修改。

./github-mcp-server --read-only

使用Docker时,可以将只读模式作为环境变量传递:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/github/github-mcp-server

GitHub企业服务器和企业云与数据驻留(ghe.com)

国旗 --gh-host 以及环境变量 GITHUB_HOST 可用于设置 具有数据驻留的GitHub Enterprise Server或GitHub Enterprise Cloud的主机名。

  • 对于GitHub Enterprise Server,在主机名前加上 https:// URI方案,否则默认为 http://,GitHub Enterprise Server不支持。
  • 对于具有数据驻留的GitHub Enterprise Cloud,请使用 https://YOURSUBDOMAIN.ghe.com 作为主机名。
"github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "-e",
    "GITHUB_HOST",
    "ghcr.io/github/github-mcp-server"
    ],
    "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
        "GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
    }
}

i18n/覆盖性描述

通过创建 github-mcp-server-config.json 文件与二进制文件位于同一目录中。

该文件应包含一个JSON对象,其中工具名称作为键,新 描述为值。例如:

{
  "TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
  "TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}

您可以通过运行二进制文件来创建当前翻译的导出 这 --export-translations 旗帜。

此标志将保留您在添加时所做的任何翻译/覆盖 自上次您使用二进制文件以来添加到二进制文件中的任何新翻译 出口。

./github-mcp-server --export-translations
cat github-mcp-server-config.json

您还可以使用ENV变量来覆盖描述。环境 变量名与JSON文件中的键相同,前缀为 GITHUB_MCP_ 全部大写。

例如,要覆盖 TOOL_ADD_ISSUE_COMMENT_DESCRIPTION 工具,你可以 设置以下环境变量:

export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"

工具

用户

  • get_me -获取已验证用户的详细信息
    • 无需参数

问题

  • 获取问题 -获取存储库中问题的内容

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • issue_number:问题编号(编号,必填)
  • 获取问题注释 -获取GitHub问题的评论

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • issue_number:问题编号(编号,必填)
  • 创建_发行 -在GitHub存储库中创建新问题

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • title:发行标题(字符串,必填)
    • body:发布正文内容(字符串,可选)
    • assignees:要分配给此问题的用户名(string[],可选)
    • labels:应用于此问题的标签(string[],可选)
  • add_issue_comment -向问题添加评论

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • issue_number:问题编号(编号,必填)
    • body:注释文本(字符串,必填)
  • list_issues -列出和筛选存储库问题

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • state:按状态筛选(“打开”、“关闭”、“全部”)(字符串,可选)
    • labels:要筛选的标签(string[],可选)
    • sort:排序方式(“已创建”、“已更新”、“注释”)(字符串,可选)
    • direction:排序方向('sc','sec')(字符串,可选)
    • since:按日期筛选(ISO 8601时间戳)(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • update_issue -更新GitHub存储库中的现有问题

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • issue_number:要更新的问题编号(编号,必填)
    • title:新标题(字符串,可选)
    • body:新描述(字符串,可选)
    • state:新状态(“打开”或“关闭”)(字符串,可选)
    • labels:新标签(string[],可选)
    • assignees:新受让人(string[],可选)
    • milestone:新里程碑编号(编号,可选)
  • 搜索问题 -搜索问题并提取请求

    • query:搜索查询(字符串,必填)
    • sort:排序字段(字符串,可选)
    • order:排序顺序(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • assign_copilot_to_oissue -将Copilot分配给GitHub存储库中的特定问题

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • issueNumber:问题编号(编号,必填)
    • 备注:此工具可以帮助创建包含源代码更改的Pull Request以解决问题。更多信息请访问 GitHub副驾驶文档

拉取请求

  • get_pull_request -获取特定拉取请求的详细信息

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • list_pull_requests -列出和筛选存储库拉取请求

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • state:PR状态(字符串,可选)
    • sort:排序字段(字符串,可选)
    • direction:排序方向(字符串,可选)
    • perPage:每页结果(数量,可选)
    • page:页码(数字,可选)
  • 合并请求 -合并拉取请求

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • commit_title:合并提交的标题(字符串,可选)
    • commit_message:合并提交消息(字符串,可选)
    • merge_method:合并方法(字符串,可选)
  • get_pull_request_files -获取拉取请求中更改的文件列表

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • get_pull_request_status -获取拉取请求的所有状态检查的组合状态

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • update_pull_request_branch -使用基础分支的最新更改更新拉取请求分支

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • expectedHeadSha:拉取请求的HEAD引用的预期SHA(字符串,可选)
  • get_pull_request_comments -获取拉取请求的评论

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • get_pull_request_reviews -获取拉取请求的评论

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • get_pull_request_diff -获取拉取请求的差异

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • create_pending_pull_request_review -为可以稍后提交的拉取请求创建待审核

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • commitID:提交审查的SHA(字符串,可选)
  • add_pull_request_review_comment_to_pending_view -在请求者的最新待处理拉取请求审核中添加注释

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • path:需要注释的文件的相对路径(字符串,必填)
    • body:审查意见的文本(字符串,必填)
    • subjectType:评论的目标级别(字符串,必填)
      • 枚举:“文件”、“行”
    • line:注释应用于的拉取请求差异中blob的行(数字,可选)
    • side:要注释的差异侧(字符串,可选)
      • 枚举:“左”、“右”
    • startLine:对于多行注释,范围的第一行(数字,可选)
    • startSide:对于多行注释,diff的起始侧(字符串,可选)
      • 枚举:“左”、“右”
  • submit_pending_pull_request_review -提交请求者最新的待处理拉取请求审核

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • event:要执行的事件(字符串,必填)
      • 枚举:“批准”、“请求_范围”、“评论”
    • body:评论文本(字符串,可选)
  • delete_pending_pull_request_review -删除请求者最新的待处理拉取请求审核

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
  • create_and_submit_pull_request_review -为拉取请求创建并提交评论,不添加评论

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • body:审阅评论文本(字符串,必填)
    • event:审核操作(“PPROVE”、“REQUEST_CHANGES”、“COMMENT”)(字符串,必填)
    • commitID:提交审查的SHA(字符串,可选)
  • create_pull_request -创建新的pull请求

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • title:PR标题(字符串,必填)
    • body:PR描述(字符串,可选)
    • head:包含更改的分支(字符串,必填)
    • base:要合并的分支(字符串,必填)
    • draft:创建为PR草稿(布尔值,可选)
    • maintainer_can_modify:允许维护者编辑(布尔值,可选)
  • update_pull_request -更新GitHub存储库中现有的pull请求

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求编号进行更新(编号,必填)
    • title:新标题(字符串,可选)
    • body:新描述(字符串,可选)
    • state:新状态(“打开”或“关闭”)(字符串,可选)
    • base:新的基础分支名称(字符串,可选)
    • maintainer_can_modify:允许维护者编辑(布尔值,可选)
  • request_copilot_review -请求对拉取请求进行GitHub Copilot审查(实验性;取决于GitHub API支持)

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • pullNumber:拉取请求号(number,必填)
    • 备注:目前,此工具仅适用于github

仓库

  • create_or_update_file -在存储库中创建或更新单个文件

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • path:文件路径(字符串,必填)
    • message:提交消息(字符串,必填)
    • content:文件内容(字符串,必填)
    • branch:分支名称(字符串,可选)
    • sha:更新时文件SHA(字符串,可选)
  • 删除文件 -从GitHub存储库中删除文件

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • path:要删除的文件的路径(字符串,必填)
    • message:提交消息(字符串,必填)
    • branch:从中删除文件的分支(字符串,必填)
  • list_brances -列出GitHub存储库中的分支

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • 推送文件 -在一次提交中推送多个文件

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • branch:要推送的分支(字符串,必填)
    • files:要推送的文件,每个文件都有路径和内容(数组,必填)
    • message:提交消息(字符串,必填)
  • search_repositories -搜索GitHub存储库

    • query:搜索查询(字符串,必填)
    • sort:排序字段(字符串,可选)
    • order:排序顺序(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • 创建存储库 -创建新的GitHub存储库

    • name:存储库名称(字符串,必填)
    • description:存储库描述(字符串,可选)
    • private:存储库是否为私有(布尔值,可选)
    • autoInit:使用README自动初始化(布尔值,可选)
  • 获取_文件_内容 -获取文件或目录的内容

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • path:文件路径(字符串,必填)
    • ref:Git引用(字符串,可选)
  • fork存储 -分叉存储库

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • organization:目标组织名称(字符串,可选)
  • create_branch -创建新分支

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • branch:新分支名称(字符串,必填)
    • sha:从SHA创建分支(字符串,必填)
  • list_commits -获取存储库中分支的提交列表

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • sha:分支名称、标记或提交SHA(字符串,可选)
    • path:仅包含此文件路径的提交(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • get_提交 -从存储库获取提交的详细信息

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • sha:提交SHA、分支名称或标记名称(字符串,必填)
    • page:提交文件的页码(数字,可选)
    • perPage:提交文件的每页结果(数量,可选)
  • get_tag -获取GitHub存储库中特定git标签的详细信息

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • tag:标签名称(字符串,必填)
  • list_tags -在GitHub存储库中列出git标签

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • 搜索代码 -在GitHub存储库中搜索代码

    • query:搜索查询(字符串,必填)
    • sort:排序字段(字符串,可选)
    • order:排序顺序(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)

用户

  • 搜索用户 -搜索GitHub用户
    • q:搜索查询(字符串,必填)
    • sort:排序字段(字符串,可选)
    • order:排序顺序(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)

行动

  • list_workflows -列出存储库中的工作流

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • list_workflow_run -为特定工作流运行列表工作流

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • workflow_id:工作流ID或文件名(字符串,必填)
    • branch:按分支名称筛选(字符串,可选)
    • event:按事件类型筛选(字符串,可选)
    • status:按运行状态筛选(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • 运行工作流 -通过workflow_dispatch事件触发工作流

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • workflow_id:工作流ID或文件名(字符串,必填)
    • ref:Git引用(分支、标记或SHA)(字符串,必填)
    • inputs:工作流的输入参数(对象,可选)
  • get_workflow_run -获取特定工作流运行的详细信息

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
  • get_workflow_run_logs -下载工作流运行日志

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
  • list_workflow_jobs -列出工作流运行的作业

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
    • filter:按作业状态筛选(字符串,可选)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • get_job_logs -下载特定工作流作业的日志,或高效获取工作流运行的所有失败作业日志

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • job_id:作业ID(编号,单个作业日志需要)
    • run_id:工作流运行ID(编号,仅在使用failed_only时需要)
    • failed_only:如果为true,则获取run_id中所有失败作业的日志(布尔值,可选)
    • return_content:返回实际日志内容而不是URL(布尔值,可选)
  • 重新运行工作流运行 -重新运行整个工作流

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
    • enable_debug_logging:为重新运行启用调试日志记录(布尔值,可选)
  • 重新运行失败的作业 -仅重新运行工作流运行中失败的作业

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
    • enable_debug_logging:为重新运行启用调试日志记录(布尔值,可选)
  • cancel_workflow_run -取消正在运行的工作流

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
  • list_workflow_run_artifacts -列出工作流运行中的工件

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • download_workflow_run_artifact -获取特定工件的下载URL

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • artifact_id:工件ID(编号,必填)
  • delete_workflow_run_logs -删除工作流运行的日志

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)
  • get_workflow_run_usage -获取工作流运行的使用指标

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • run_id:工作流运行ID(编号,必填)

代码扫描

  • get_code_scanning_alert -获取代码扫描警报

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • alertNumber:警报号码(号码,必填)
  • list_code_scanning_alerts -列出存储库的代码扫描警报

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • ref:Git引用(字符串,可选)
    • state:警报状态(字符串,可选)
    • severity:警报严重性(字符串,可选)
    • tool_name:用于代码扫描的工具的名称(字符串,可选)

秘密扫描

  • get_secret_scanning_alert -获取秘密扫描警报

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • alertNumber:警报号码(号码,必填)
  • list_secret_scaning_alerts -列出存储库的秘密扫描警报

    • owner:存储库所有者(字符串,必填)
    • repo:存储库名称(字符串,必填)
    • state:警报状态(字符串,可选)
    • secret_type:在逗号分隔的列表中筛选的秘密类型(字符串,可选)
    • resolution:解析状态(字符串,可选)

通知

  • list_通知 –列出GitHub用户的通知

    • filter:应用于响应的筛选器(default, include_read_notifications, only_participating)
    • since:仅显示在给定时间后更新的通知(ISO 8601格式)
    • before:仅显示在给定时间之前更新的通知(ISO 8601格式)
    • owner:可选存储库所有者(字符串)
    • repo:可选存储库名称(字符串)
    • page:页码(数字,可选)
    • perPage:每页结果(数量,可选)
  • 获取通知_详细信息 –获取特定GitHub通知的详细信息

    • notificationID:通知的ID(字符串,必填)
  • 解雇通知 –通过将通知标记为已读或已完成来取消通知

    • threadID:通知线程的ID(字符串,必填)
    • state:通知的新状态(read 或 done)
  • mark_all_通知_阅读 –将所有通知标记为已读

    • lastReadAt:描述检查通知的最后一点(可选,RFC3339/ISO8601字符串,默认值:now)
    • owner:可选存储库所有者(字符串)
    • repo:可选存储库名称(字符串)
  • 管理通知订阅 –管理通知线程的通知订阅(忽略、监视或删除)

    • notificationID:通知线程的ID(字符串,必填)
    • action:要执行的操作: ignore, watch,或 delete (字符串,必填)
  • 管理_职位_通知_订阅 –管理存储库通知订阅(忽略、监视或删除)

    • owner:存储库的帐户所有者(字符串,必填)
    • repo:存储库的名称(字符串,必填)
    • action:要执行的操作: ignore, watch,或 delete (字符串,必填)

资源

存储库内容

  • 获取存储库内容 在特定路径检索存储库的内容。

    • 模板: repo://{owner}/{repo}/contents{/path*}
    • 参数:
      • owner:存储库所有者(字符串,必填)
      • repo:存储库名称(字符串,必填)
      • path:文件或目录路径(字符串,可选)
  • 获取特定分支的存储库内容 在给定分支的特定路径上检索存储库的内容。

    • 模板: repo://{owner}/{repo}/refs/heads/{branch}/contents{/path*}
    • 参数:
      • owner:存储库所有者(字符串,必填)
      • repo:存储库名称(字符串,必填)
      • branch:分支名称(字符串,必填)
      • path:文件或目录路径(字符串,可选)
  • 获取特定提交的存储库内容 在给定提交的特定路径上检索存储库的内容。

    • 模板: repo://{owner}/{repo}/sha/{sha}/contents{/path*}
    • 参数:
      • owner:存储库所有者(字符串,必填)
      • repo:存储库名称(字符串,必填)
      • sha:提交SHA(字符串,必填)
      • path:文件或目录路径(字符串,可选)
  • 获取特定标记的存储库内容 在给定标记的特定路径上检索存储库的内容。

    • 模板: repo://{owner}/{repo}/refs/tags/{tag}/contents{/path*}
    • 参数:
      • owner:存储库所有者(字符串,必填)
      • repo:存储库名称(字符串,必填)
      • tag:标签名称(字符串,必填)
      • path:文件或目录路径(字符串,可选)
  • 获取特定拉取请求的存储库内容 为给定的拉取请求检索特定路径上存储库的内容。

    • 模板: repo://{owner}/{repo}/refs/pull/{prNumber}/head/contents{/path*}
    • 参数:
      • owner:存储库所有者(字符串,必填)
      • repo:存储库名称(字符串,必填)
      • prNumber:拉取请求号(字符串,必填)
      • path:文件或目录路径(字符串,可选)

图书馆使用情况

该模块导出的Go API当前应被视为不稳定,并可能发生中断更改。未来,我们可能会提供稳定;如果存在有价值的用例,请提交一个问题。

许可证

该项目根据麻省理工学院开源许可证条款获得许可。请参考 麻省理工学院 完整的条款。