文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
文档

GitHubFileEditor

这是通过GitHub API在GitHub存储库中编辑文件的组件。

pipeline 中的最常见位置在 Chat Generator 之后,或者在 pipeline 的最开始
必需的初始化变量"github_token": GitHub 个人访问令牌。可以设置为GITHUB_TOKEN 环境变量。
强制运行变量"command": 操作类型(编辑、创建、删除、撤销)

"payload": 命令特定的参数
输出变量"result": 指示操作结果的字符串
API 参考GitHub
GitHub 链接https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/github

概述

GitHubFileEditor 支持多种文件操作,包括编辑现有文件、创建新文件、删除文件以及撤销最近的更改。

有四种主要命令

  • EDIT: 通过替换特定内容来编辑现有文件
  • CREATE: 使用指定内容创建新文件
  • DELETE: 删除现有文件
  • UNDO: 撤销由同一用户进行的最后一次提交

授权

此组件需要使用个人访问令牌进行 GitHub 身份验证。您可以通过GITHUB_TOKEN 环境变量进行设置,或者在初始化时通过github_token 参数直接传递。

要创建个人访问令牌,请访问 GitHub 的令牌设置页面。确保授予适当的存储库访问和内容管理权限。

安装

使用 pip 安装 GitHub 集成

pip install github-haystack

用法

📘

仓库占位符

要运行以下代码片段,您需要将owner/repo 替换为您自己的 GitHub 仓库名称。

单独使用

编辑现有文件

from haystack_integrations.components.connectors.github import GitHubFileEditor, Command

editor = GitHubFileEditor(repo="owner/repo", branch="main")

result = editor.run(
    command=Command.EDIT,
    payload={
        "path": "src/example.py",
        "original": "def old_function():",
        "replacement": "def new_function():",
        "message": "Renamed function for clarity"
    }
)

print(result)
{'result': 'Edit successful'}

创建新文件

from haystack_integrations.components.connectors.github import GitHubFileEditor, Command

editor = GitHubFileEditor(repo="owner/repo")

result = editor.run(
    command=Command.CREATE,
    payload={
        "path": "docs/new_file.md",
        "content": "# New Documentation\n\nThis is a new file.",
        "message": "Add new documentation file"
    }
)

print(result)
{'result': 'File created successfully'}