
cdignam/kodiak-web-apiKodiak是一款专注于自动化GitHub Pull Request(PR)管理的工具,旨在通过配置化规则减少PR处理中的手动操作,解决团队协作中PR管理繁琐、效率低下的问题。其核心目标是自动化PR流程(如合并、依赖更新、冲突处理等),帮助开发团队聚焦代码开发而非流程管理,提升整体协作效率。
auto-merge)、CI状态(如通过所有检查)、审批状态等条件控制合并时机。main),确保代码基于最新基线,降低冲突风险。.kodiak.toml或.kodiak.yml文件定义规则,支持按仓库、分支或PR标签自定义行为。Kodiak支持两种主要部署方式:GitHub App(官方托管,无需自建服务)和Docker容器(私有部署,需自行维护)。以下为Docker部署说明。
从Docker Hub拉取官方镜像:
bashdocker pull chdsbd/kodiak:latest
bashdocker run -d \ --name kodiak \ -v /path/to/kodiak-config:/app/config \ # 挂载配置目录(存放私钥、配置文件等) -e GITHUB_APP_ID=*** \ # GitHub App ID(在GitHub App设置中获取) -e PRIVATE_KEY_PATH=/app/config/private-key.pem \ # 私钥文件路径(GitHub App生成的私钥) -e WEBHOOK_SECRET=your-webhook-secret \ # GitHub App设置的webhook密钥 -e DATABASE_URL=postgres://user:pass@db-host:5432/kodiak \ # 数据库连接地址(支持PostgreSQL) -p 8080:8080 \ # 暴露web服务端口(接收GitHub webhook) chdsbd/kodiak:latest
yamlversion: '3.8' services: kodiak: image: chdsbd/kodiak:latest container_name: kodiak volumes: - ./kodiak-config:/app/config environment: - GITHUB_APP_ID=*** - PRIVATE_KEY_PATH=/app/config/private-key.pem - WEBHOOK_SECRET=your-webhook-secret - DATABASE_URL=postgres://user:pass@postgres:5432/kodiak - LOG_LEVEL=info # 日志级别:debug/info/warn/error ports: - "8080:8080" depends_on: - postgres postgres: image: postgres:14 environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=pass - POSTGRES_DB=kodiak volumes: - postgres-data:/var/lib/postgresql/data volumes: postgres-data:
| 参数名 | 说明 | 是否必填 |
|---|---|---|
GITHUB_APP_ID | GitHub App的ID,在GitHub App设置页面的"About"部分获取。 | 是 |
PRIVATE_KEY_PATH | GitHub App生成的私钥文件路径(需挂载到容器内)。 | 是 |
WEBHOOK_SECRET | GitHub App设置的webhook密钥,用于验证webhook请求合法性。 | 是 |
DATABASE_URL | 数据库连接URL(支持PostgreSQL),用于存储队列状态、PR配置等数据。 | 是 |
LOG_LEVEL | 日志输出级别,可选debug/info/warn/error,默认info。 | 否 |
.kodiak.toml/.kodiak.yml)在仓库根目录创建配置文件,定义PR处理规则。示例(.kodiak.yml):
yaml# 自动合并配置 merge: # 触发自动合并的标签(PR添加此标签时触发) auto_merge_label: "auto-merge" # 允许的合并方式(squash/rebase/merge) allowed_merge_methods: ["squash"] # 必须通过的状态检查(CI任务名称,如"lint"、"test") required_status_checks: ["lint", "test"] # 要求PR获得的审批数量(0表示不需要审批) required_approvals: 1 # 合并队列配置 queue: # 启用合并队列 enabled: true # 队列内PR合并前自动同步目标分支(如main) sync_before_merge: true # 依赖更新PR配置 dependencies: # 自动合并依赖更新PR(如Dependabot创建的PR) auto_merge: true # 依赖更新PR的标签(用于识别此类PR) labels: ["dependencies"]
pull_requests: write、statuses: read等),确保Kodiak有权限操作PR。更多详细配置及使用说明可参考官方文档:[***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务