OpenHands Issue Resolver 集成到 GitHub Actions 教程

OpenHands Issue Resolver是一个强大的工具,可以帮助开发者自动化问题的解决过程。通过GitHub Actions的集成,您可以在每次提交代码时自动运行它,从而提高开发效率。

准备工作

在开始之前,请确保您已经完成以下准备工作:

  1. 拥有一个GitHub仓库。
  2. 确保仓库中启用了GitHub Actions。
  3. 确保您有权限编辑仓库的.github/workflows目录。

配置步骤

第一步:创建GitHub Actions工作流文件

在您的仓库中,导航到.github/workflows目录。如果该目录不存在,请创建一个。

在该目录下,新建一个名为openhands-resolver.yml的文件,并添加以下内容:

name: Resolve Issue with OpenHands

on:
  issues:
    types: [labeled]
  pull_request:
    types: [labeled]
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  pull_request_review:
    types: [submitted]

permissions:
  contents: write
  pull-requests: write
  issues: write

jobs:
  call-openhands-resolver:
    uses: All-Hands-AI/OpenHands/.github/workflows/openhands-resolver.yml@main
    with:
      macro: ${{ vars.OPENHANDS_MACRO || '@openhands-agent' }}
      max_iterations: ${{ fromJson(vars.OPENHANDS_MAX_ITER || 50) }}
      base_container_image: ${{ vars.OPENHANDS_BASE_CONTAINER_IMAGE || '' }}
      LLM_MODEL: ${{ vars.LLM_MODEL || 'azure/gpt-4o' }}
      target_branch: ${{ vars.TARGET_BRANCH || 'dev' }}
    secrets:
      PAT_TOKEN: ${{ secrets.OPENHANDS_RESOLVER_TOKEN }}
      PAT_USERNAME: ${{ secrets.OPENHANDS_RESOLVER_USERNAME }}
      LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
      LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}

第二步,配置 Repo 权限

  1. 依次点击 Settings -> Actions -> Genral -> Workflow permissions
  2. 勾选 Read and write permissions
  3. 勾选 Allow Github Actions to create and approve pull requests

第三步:配置 GitHub Secrets

  1. 打开 GitHub Secrets
  • 必须项: LLM_API_KEY
  • 可选项: OPENHANDS_RESOLVER_TOKEN, OPENHANDS_RESOLVER_USERNAME, LLM_BASE_URL

为了让 OpenHands Issue Resolver 能够访问您的GitHub仓库,您需要配置GITHUB_TOKEN。幸运的是,GitHub 会自动为每个工作流运行提供一个GITHUB_TOKEN,您无需手动设置。

第四步:验证配置

完成上述步骤后,提交并推送更改到您的仓库。即通过如下步骤触发 OpenHands Issue Resolver 工作流运行:

  1. 在 Repo 中创建新的 Issue。
  2. 给 Issue 添加 fix-me 的标签,或者在 Issue 的评论区 @openhands-agent
  • 使用 fix-me 标签, Agent 会基于所有的留言进行处理。
  • 使用 @openhands-agent, Agent进针对所处的留言帖子进行处理。

GitHub Issue Creation 3. Openhands Agent自动被触发,即可通过 Agent生成的新评论或在 GitHub Repo 的 "Actions" 选项卡中查看工作流的运行状态。 GitHub Actions GitHub Actions 4. OpenHands完成工作,并生成了新的PR,可人工进行review, merge GitHub Issue PR GitHub Issue Finished

然后如果一切正常,您将看到OpenHands Issue Resolver成功运行的日志。

参考资料

总结

通过以上步骤,您已经成功将OpenHands Issue Resolver集成到GitHub Actions中。现在,您可以享受自动化问题解决带来的便利了!

如果您在配置过程中遇到任何问题,可随时在评论区下方留言。希望这篇文章对您有所帮助!

留言与讨论