项目级别的安全文件 API

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署
History
    • 在极狐GitLab 15.7 中 GA。功能标志 ci_secure_files 被移除。

这个功能是Mobile DevOps的一部分。您可以安全地存储多达 100 个文件,以用于 CI/CD 流水线作为安全文件。这些文件安全地存储在项目的代码库之外,并且不进行版本控制。在这些文件中存储敏感信息是安全的。安全文件支持纯文本和二进制文件类型,但必须小于 5 MB。

列出项目安全文件#

获取项目中安全文件的列表。

plaintext
GET /projects/:project_id/secure_files

支持的属性:

属性类型必需描述
project_idinteger/string项目的 ID 或 URL 编码的项目路径

示例请求:

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/secure_files"

示例响应:

json
1[ 2 { 3 "id": 1, 4 "name": "myfile.jks", 5 "checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac", 6 "checksum_algorithm": "sha256", 7 "created_at": "2022-02-22T22:22:22.222Z", 8 "expires_at": null, 9 "metadata": null 10 }, 11 { 12 "id": 2, 13 "name": "myfile.cer", 14 "checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aa2", 15 "checksum_algorithm": "sha256", 16 "created_at": "2022-02-22T22:22:22.222Z", 17 "expires_at": "2023-09-21T14:55:59.000Z", 18 "metadata": { 19 "id":"75949910542696343243264405377658443914", 20 "issuer": { 21 "C":"US", 22 "O":"Apple Inc.", 23 "CN":"Apple Worldwide Developer Relations Certification Authority", 24 "OU":"G3" 25 }, 26 "subject": { 27 "C":"US", 28 "O":"Organization Name", 29 "CN":"Apple Distribution: Organization Name (ABC123XYZ)", 30 "OU":"ABC123XYZ", 31 "UID":"ABC123XYZ" 32 }, 33 "expires_at":"2023-09-21T14:55:59.000Z" 34 } 35 } 36]

显示安全文件详情#

获取项目中特定安全文件的详细信息。

plaintext
GET /projects/:project_id/secure_files/:id

支持的属性:

属性类型必需描述
idinteger安全文件的 ID。
project_idinteger/string项目的 ID 或 URL 编码的项目路径

示例请求:

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/secure_files/1"

示例响应:

json
1{ 2 "id": 1, 3 "name": "myfile.jks", 4 "checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac", 5 "checksum_algorithm": "sha256", 6 "created_at": "2022-02-22T22:22:22.222Z", 7 "expires_at": null, 8 "metadata": null 9}

创建安全文件#

创建一个新的安全文件。

plaintext
POST /projects/:project_id/secure_files

支持的属性:

属性类型必需描述
filefile上传的文件(5 MB 限制)。
namestring上传文件的名称。文件名在项目中必须唯一。
project_idinteger/string项目的 ID 或 URL 编码的项目路径

示例请求:

shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ "https://gitlab.example.com/api/v4/projects/1/secure_files" --form "name=myfile.jks" --form "file=@/path/to/file/myfile.jks"

示例响应:

json
1{ 2 "id": 1, 3 "name": "myfile.jks", 4 "checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac", 5 "checksum_algorithm": "sha256", 6 "created_at": "2022-02-22T22:22:22.222Z", 7 "expires_at": null, 8 "metadata": null 9}

下载安全文件#

下载项目安全文件的内容。

plaintext
GET /projects/:project_id/secure_files/:id/download

支持的属性:

属性类型必需描述
idinteger安全文件的 ID。
project_idinteger/string项目的 ID 或 URL 编码的项目路径

示例请求:

shell
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/secure_files/1/download --output myfile.jks

删除安全文件#

删除项目的安全文件。

plaintext
DELETE /projects/:project_id/secure_files/:id

支持的属性:

属性类型必需描述
idinteger安全文件的 ID。
project_idinteger/string项目的 ID 或 URL 编码的项目路径

示例请求:

shell
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/secure_files/1"