极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:
- 极狐GitLab 中文文档
- 极狐GitLab 中文论坛
- 极狐GitLab 官网
外部流水线验证 (BASIC SELF)
您可以使用外部服务在创建流水线之前进行验证。
极狐GitLab 发送一个 POST 请求到外部服务的 URL,并将流水线数据作为负载。外部服务的响应代码决定了极狐GitLab 是否应该接受或拒绝流水线。如果响应是:
-
200,流水线被接受。
-
406,流水线被拒绝。
-
其他代码,流水线被接受并记录。
如果出现错误或请求超时,流水线将被接受。
由外部验证服务拒绝的流水线不会被创建,也不会出现在极狐GitLab 的 UI 或 API 的流水线列表中。如果您在 UI 中创建的流水线被拒绝,会显示 Pipeline cannot be run. External validation failed。
配置外部流水线验证
要配置外部流水线验证,请添加 EXTERNAL_VALIDATION_SERVICE_URL 环境变量 并将其设置为外部服务的 URL。
默认情况下,请求外部服务将在五秒后超时。要覆盖默认设置,请设置 EXTERNAL_VALIDATION_SERVICE_TIMEOUT 环境变量为所需的秒数。
负载架构
- tag_list introduced in 极狐GitLab 16.11.
{"type": "object","required" : ["project","user","credit_card","pipeline","builds","total_builds_count","namespace"],"properties" : {"project": {"type": "object","required": ["id","path","created_at","shared_runners_enabled","group_runners_enabled"],"properties": {"id": { "type": "integer" },"path": { "type": "string" },"created_at": { "type": ["string", "null"], "format": "date-time" },"shared_runners_enabled": { "type": "boolean" },"group_runners_enabled": { "type": "boolean" }}},"user": {"type": "object","required": ["id","username","email","created_at"],"properties": {"id": { "type": "integer" },"username": { "type": "string" },"email": { "type": "string" },"created_at": { "type": ["string", "null"], "format": "date-time" },"current_sign_in_ip": { "type": ["string", "null"] },"last_sign_in_ip": { "type": ["string", "null"] },"sign_in_count": { "type": "integer" }}},"credit_card": {"type": "object","required": ["similar_cards_count","similar_holder_names_count"],"properties": {"similar_cards_count": { "type": "integer" },"similar_holder_names_count": { "type": "integer" }}},"pipeline": {"type": "object","required": ["sha","ref","type"],"properties": {"sha": { "type": "string" },"ref": { "type": "string" },"type": { "type": "string" }}},"builds": {"type": "array","items": {"type": "object","required": ["name","stage","image","tag_list","services","script"],"properties": {"name": { "type": "string" },"stage": { "type": "string" },"image": { "type": ["string", "null"] },"tag_list": { "type": ["array", "null"] },"services": {"type": ["array", "null"],"items": { "type": "string" }},"script": {"type": "array","items": { "type": "string" }}}}},"total_builds_count": { "type": "integer" },"namespace": {"type": "object","required": ["plan","trial"],"properties": {"plan": { "type": "string" },"trial": { "type": "boolean" }}},"provisioning_group": {"type": "object","required": ["plan","trial"],"properties": {"plan": { "type": "string" },"trial": { "type": "boolean" }}}}
}
namespace 字段仅在 极狐GitLab 专业版和旗舰版 中可用。