GitHubAPIWrapper#

class langchain_community.utilities.github.GitHubAPIWrapper[源代码]#

基础类:BaseModel

GitHub API的封装。

通过解析和验证来自关键字参数的输入数据来创建一个新模型。

如果输入数据无法验证以形成有效模型,则引发 [ValidationError][pydantic_core.ValidationError]。

self 被显式地设为仅位置参数,以允许 self 作为字段名称。

param active_branch: str | None = None#
param github_app_id: str | None = None#
param github_app_private_key: str | None = None#
param github_base_branch: str | None = None#
param github_repository: str | None = None#
comment_on_issue(comment_query: str) str[source]#

向 GitHub 问题添加评论 参数:

comment_query(str): 一个包含问题编号、两个换行符和评论的字符串。 例如:“1

Working on it now”

将评论“正在处理中”添加到问题1

Returns:

str: 成功或失败的消息

Parameters:

comment_query (str)

Return type:

字符串

create_branch(proposed_branch_name: str) str[来源]#

创建一个新分支,并将其设置为活动机器人分支。 相当于 git switch -c proposed_branch_name 如果提议的分支已经存在,我们会附加 _v1 然后 _v2… 直到找到一个唯一的名称。

Returns:

纯文本成功消息。

Return type:

字符串

Parameters:

proposed_branch_name (str)

create_file(file_query: str) str[source]#

在Github仓库上创建一个新文件 参数:

file_query(str): 一个包含文件路径和文件内容的字符串。文件路径是字符串中的第一行,内容是字符串的其余部分。例如,“hello_world.md

# Hello World!”
Returns:

str: 成功或失败的消息

Parameters:

file_query (str)

Return type:

字符串

create_pull_request(pr_query: str) str[source]#

从机器人的分支向基础分支发起拉取请求 参数:

pr_query(str): 一个包含PR标题和PR内容的字符串。标题是字符串的第一行,内容是字符串的其余部分。例如,“更新了README

made changes to add info”
Returns:

str: 成功或失败的消息

Parameters:

pr_query (str)

Return type:

字符串

create_review_request(reviewer_username: str) str[source]#

在当前活动的分支上匹配的THE开放拉取请求上创建一个审查请求。

Parameters:

reviewer_username (str) – 被请求人的用户名

Returns:

确认创建审查请求的消息

Return type:

字符串

delete_file(file_path: str) str[source]#

从仓库中删除一个文件 :param file_path: 文件所在的位置 :type file_path: str

Returns:

成功或失败消息

Return type:

字符串

Parameters:

file_path (str)

get_files_from_directory(directory_path: str) str[来源]#

递归地从仓库中的目录获取文件。

Parameters:

directory_path (str) – 目录的路径

Returns:

文件路径列表,或错误信息。

Return type:

字符串

get_issue(issue_number: int) Dict[str, Any][source]#

获取特定问题及其前10条评论 :param issue_number: github问题的编号 :type issue_number: int

Returns:

一个包含问题标题、正文、评论(作为字符串)以及打开问题的用户名的字典

Return type:

字典

Parameters:

issue_number (int)

get_issues() str[source]#

从仓库中获取所有未解决的问题,不包括拉取请求

Returns:

一个包含问题数量和每个问题的标题和编号的纯文本报告。

Return type:

字符串

get_pull_request(pr_number: int) Dict[str, Any][source]#

获取特定的拉取请求及其前10条评论,受max_tokens限制。

Parameters:
  • pr_number (int) – Github拉取请求的编号

  • max_tokens (int) – 响应中的最大令牌数

Returns:

一个包含拉取请求的标题、正文和评论的字典,作为字符串

Return type:

字典

list_branches_in_repo() str[source]#

获取存储库中所有分支的列表。

Returns:

包含分支名称的纯文本报告。

Return type:

字符串

list_files_in_bot_branch() str[source]#

获取仓库活动分支中的所有文件,这是机器人用于进行更改的分支。

Returns:

包含分支中文件路径的纯文本列表。

Return type:

字符串

list_files_in_main_branch() str[来源]#

获取仓库主分支中的所有文件。

Returns:

包含文件路径和名称的纯文本报告。

Return type:

字符串

list_open_pull_requests() str[source]#

从仓库中获取所有打开的PR

Returns:

一个包含PR数量和每个PR标题及编号的纯文本报告。

Return type:

字符串

list_pull_request_files(pr_number: int) List[Dict[str, Any]][source]#

获取PR中所有文件的完整文本。在前3k个标记后截断。 # TODO: 如果文件变得过长,增强功能以使用ctags进行文件摘要。

Parameters:

pr_number (int) – Github 上拉取请求的编号

Returns:

一个包含问题标题、正文和评论的字典,作为字符串

Return type:

字典

parse_issues(issues: List[Issue]) List[dict][source]#

从每个Issue中提取标题和编号,并将它们放入字典中 :param issues: 一个Github Issue对象的列表 :type issues: List[Issue]

Returns:

问题标题和编号的字典

Return type:

列表[字典]

Parameters:

问题 (列表[问题])

parse_pull_requests(pull_requests: List[PullRequest]) List[dict][source]#

从每个Issue中提取标题和编号,并将它们放入字典中 :param issues: Github Issue对象的列表 :type issues: List[Issue]

Returns:

问题标题和编号的字典

Return type:

列表[字典]

Parameters:

pull_requests (列表[PullRequest])

read_file(file_path: str) str[来源]#

从该代理的分支读取文件,由self.active_branch定义,支持PR分支。 :param file_path: 文件路径 :type file_path: str

Returns:

文件解码为字符串,如果未找到则显示错误消息

Return type:

字符串

Parameters:

file_path (str)

run(mode: str, query: str) str[source]#
Parameters:
  • mode (str)

  • query (str)

Return type:

字符串

search_code(query: str) str[源代码]#

在仓库中搜索代码。 # 待办:限制返回的总令牌数…

Parameters:

query (str) – 搜索查询

Returns:

一个字符串,最多包含前5个搜索结果

Return type:

字符串

search_issues_and_prs(query: str) str[source]#

在仓库中搜索问题和拉取请求。

Parameters:

query (str) – 搜索查询

Returns:

一个包含前5个问题和拉取请求的字符串

Return type:

字符串

set_active_branch(branch_name: str) str[源代码]#

相当于此代理的git checkout branch_name。 克隆自Github的格式。

如果分支不存在,则返回一个错误(作为字符串)。

Parameters:

branch_name (str)

Return type:

字符串

update_file(file_query: str) str[source]#

使用新内容更新文件。 :param file_query: 包含文件路径和文件内容。

旧文件内容被包裹在OLD <<<<和>>>> OLD之间 新文件内容被包裹在NEW <<<<和>>>> NEW之间 例如: /test/hello.txt OLD <<<< 你好,地球! >>>> OLD NEW <<<< 你好,火星! >>>> NEW

Returns:

成功或失败的消息

Parameters:

file_query (str)

Return type:

字符串

使用 GitHubAPIWrapper 的示例