健康检查与版本
健康端点
| 路径 | 认证 | 含义 |
|---|---|---|
GET /health/live | 无 | 进程存活 |
GET /health/ready | 无 | 数据库与迁移等核心依赖就绪 |
GET /metrics | 可选 Bearer | Prometheus 文本指标(见下方) |
示例:
curl -fsS http://127.0.0.1:8080/health/live
curl -fsS http://127.0.0.1:8080/health/ready容器或编排的 Healthcheck 应使用 /health/ready。
Prometheus /metrics 是什么?
/metrics 是 Prometheus 抓取格式的指标 HTTP 接口(text/plain),给监控系统(Prometheus、VictoriaMetrics、Grafana Agent 等)定期拉取,用于做图表与告警。它不是给人看的管理 API。
当前暴露的计数/仪表包括(节选):
reposentinel_webhook_accepted_total/duplicate_total/invalid_signature_totalreposentinel_outbox_sent_total/outbox_dead_totalreposentinel_reconcile_runs_total- 以及开放 Issue/PR、失败 Actions、安全告警、仓库数等 gauge
配置:
REPOSENTINEL_METRICS_ENABLED=true|false(默认开启)REPOSENTINEL_METRICS_TOKEN:设置后抓取需带Authorization: Bearer <token>
生产建议:反向代理只对内网开放 /metrics,或启用 Token。
版本 API
GET /api/v1/system/version需要有效管理员 Session。响应包含版本、Git SHA、分支、构建时间、构建渠道、Go 版本、数据库类型与 Schema 版本等字段(以实现为准)。
公开构建信息
GET /api/v1/system/build-info无需认证,仅返回 { "version": "x.y.z" } 一个字段(示例值,以实例实际版本为准)。供登录页页脚等未认证场景展示真实构建版本;不含任何配置状态(需要完整版本信息请用上一条 system/version)。
本地未注入 ldflags 时,CLI version 可能显示 dev / unknown,这是预期回退,不会被误判为正式发行版。
生产构建推荐:
OUTPUT=.tmp/reposentinel BUILD_CHANNEL=local make build-production
.tmp/reposentinel version部署镜像推荐:ghcr.io/silentely/repo-sentinel:latest(或钉死 vX.Y.Z),见 Docker 部署。
产品版本以仓库根目录 VERSION 为准;维护者发版见 发布与镜像。
更新检查
管理后台「关于与版本」提供 检查更新:优先通过 github.com/.../releases/latest 的 302 Location 解析 tag(不占用 API 配额),失败再回退 API JSON;失败 soft-fail;成功结果进程内缓存约 6 小时。
| 配置 | 说明 |
|---|---|
REPOSENTINEL_UPDATE_CHECK | 默认开启;false/0/off 关闭远程检查 |
REPOSENTINEL_UPDATE_CHECK_URL | 默认 GitHub API releases/latest;可换自定义 https JSON 源 |
REPOSENTINEL_UPDATE_CHECK_TOKEN | 可选,仅 JSON/API 路径使用 |
GET /api/v1/system/version
POST /api/v1/system/version/check?force=true均需管理员 Session;POST 另需 CSRF。响应含 update_check(latest_version / update_available / error / cached 等)。