跳到正文

CI 中使用 Lime

在组织的 GitHub Actions 工作流中调用 Lime CLI。

集成方式

可以在 GitHub Actions 运行器中调用 Lime CLI 执行代码检查、测试解释和受限改动。Lime 没有可直接套用的官方 Action 包;组织负责安装匹配的二进制、配置模型连接,并维护工作流的权限与审查边界。

准备运行器

  1. 安装并固定已验证的 Lime CLI 与匹配运行组件。
  2. 按组织方式配置提供方和凭据,使用受限 Secret 注入。
  3. 检出要分析的代码,确认工作目录与依赖。
  4. 用一个只读任务验证连接,再加入正式流程。

最小工作流片段

下面片段假定自托管运行器已安装并完成 Lime 配置。它手动触发,只读取仓库并上传结果,不包含凭据安装和远程评论。

yaml
name: Lime review
on:
  workflow_dispatch:
permissions:
  contents: read
jobs:
  review:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - name: Check CLI
        run: lime --version
      - name: Run read-only analysis
        run: >-
          lime exec --sandbox read-only --ask-for-approval never
          --output-last-message lime-review.md
          "读取项目指令,检查当前代码,报告有证据的问题;不要修改文件或调用外部写入工具"
      - uses: actions/upload-artifact@v4
        with:
          name: lime-review
          path: lime-review.md

组织可进一步固定第三方 Action 的完整提交 SHA。运行器标签、依赖缓存和结果保留期应使用自身配置。

不可信输入

拉取请求的标题、正文、差异和仓库文件都可能包含指令。将它们作为待分析材料,不让它们决定 Secret、权限、外部发送目标或工作流逻辑。来自 fork 的任务不能自动获得内部凭据或高权限运行器。

发布评论和改动

生成审查文稿与发布评论是两个动作。只有明确授权后,才使用组织的 GitHub 集成将文稿写回;写入权限应限定目标仓库与操作。自动提交或创建拉取请求还需检查差异、测试、分支保护和重复执行。

失败与恢复

保留退出码、脱敏事件、线程 ID 和产物。执行超时后先检查原任务及远端状态;不要因工作流重跑而重复发送评论或提交。结果文件不存在时,不能上传一个空文件冒充审查成功。