受治理的 Git 发布
gitpublish 模块提供面向 GitHub、GitLab 以及普通 git 远程(仅推送)的受治理发布。它属于 Community。
每项操作都需要批准的目标、仓库和凭据绑定,以及当前有效的授权。如果缺少所需绑定、Git 可执行文件或授权,发布会被拒绝。注册模块并不意味着仓库已经可以发布。
API 命名空间为 /v1/m/gitpublish,提供发布目标、推送、合并请求与合并的操作意图,以及核对和观察结果。
目标读取(GET /targets 和 GET /targets/{id})包含一个只读的 host(github、gitlab 或 git),由已批准的凭据绑定解析而来。控制台仅对 GitHub 和 GitLab 提供合并请求与合并,包括会话推送之后提供的草稿合并请求。如果某个绑定不再获得批准,或较旧的引擎省略了 host,控制台只提供推送;引擎仍会对每项操作检查保管和授权。绑定查找失败会返回不可用响应。
推送可以指定一个会话运行(session_run)。此时 Olivares 会在发布前,仅通过本地文件协议,把该运行文件夹中的提交获取到服务器仓库。该运行必须属于目标所在的工作区;请求从不指定路径。
远端结果不确定时,不允许直接重试。模块分别记录请求、观察结果和确认信息。已经发出的远端操作可能与后续本地撤权发生竞争。