ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Project badges API > 原文:[https://docs.gitlab.com/ee/api/project_badges.html](https://docs.gitlab.com/ee/api/project_badges.html) * [Placeholder tokens](#placeholder-tokens) * [List all badges of a project](#list-all-badges-of-a-project) * [Get a badge of a project](#get-a-badge-of-a-project) * [Add a badge to a project](#add-a-badge-to-a-project) * [Edit a badge of a project](#edit-a-badge-of-a-project) * [Remove a badge from a project](#remove-a-badge-from-a-project) * [Preview a badge from a project](#preview-a-badge-from-a-project) # Project badges API[](#project-badges-api "Permalink") 在 GitLab 10.6 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17082) . ## Placeholder tokens[](#placeholder-tokens "Permalink") 徽章支持占位符,这些占位符将在链接和图像 URL 中被实时替换. 允许的占位符为: * **%{project_path}** :将被项目路径替换. * **%{project_id}** :将被项目 ID 取代. * **%{default_branch}** :将被项目默认分支替换. * **%{commit_sha}** :将被上一个项目的提交 sha 取代. ## List all badges of a project[](#list-all-badges-of-a-project "Permalink") 获取项目徽章及其组徽章的列表. ``` GET /projects/:id/badges ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) | | `name` | string | no | 要返回的徽章名称(区分大小写). | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/badges" ``` 响应示例: ``` [ { "name": "Coverage", "id": 1, "link_url": "http://example.com/ci_status.svg?project=%{project_path}&ref=%{default_branch}", "image_url": "https://shields.io/my/badge", "rendered_link_url": "http://example.com/ci_status.svg?project=example-org/example-project&ref=master", "rendered_image_url": "https://shields.io/my/badge", "kind": "project" }, { "name": "Pipeline", "id": 2, "link_url": "http://example.com/ci_status.svg?project=%{project_path}&ref=%{default_branch}", "image_url": "https://shields.io/my/badge", "rendered_link_url": "http://example.com/ci_status.svg?project=example-org/example-project&ref=master", "rendered_image_url": "https://shields.io/my/badge", "kind": "group" }, ] ``` ## Get a badge of a project[](#get-a-badge-of-a-project "Permalink") 获取项目的徽章. ``` GET /projects/:id/badges/:badge_id ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) | | `badge_id` | integer | yes | 徽章 ID | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/badges/:badge_id" ``` 响应示例: ``` { "id": 1, "link_url": "http://example.com/ci_status.svg?project=%{project_path}&ref=%{default_branch}", "image_url": "https://shields.io/my/badge", "rendered_link_url": "http://example.com/ci_status.svg?project=example-org/example-project&ref=master", "rendered_image_url": "https://shields.io/my/badge", "kind": "project" } ``` ## Add a badge to a project[](#add-a-badge-to-a-project "Permalink") 将徽章添加到项目. ``` POST /projects/:id/badges ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) | | `link_url` | string | yes | 徽章链接的 URL | | `image_url` | string | yes | 徽章图片的网址 | ``` curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "link_url=https://gitlab.com/gitlab-org/gitlab-foss/commits/master&image_url=https://shields.io/my/badge1&position=0" "https://gitlab.example.com/api/v4/projects/:id/badges" ``` 响应示例: ``` { "id": 1, "link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "image_url": "https://shields.io/my/badge1", "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "rendered_image_url": "https://shields.io/my/badge1", "kind": "project" } ``` ## Edit a badge of a project[](#edit-a-badge-of-a-project "Permalink") 更新项目的徽章. ``` PUT /projects/:id/badges/:badge_id ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) | | `badge_id` | integer | yes | 徽章 ID | | `link_url` | string | no | 徽章链接的 URL | | `image_url` | string | no | 徽章图片的网址 | ``` curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/badges/:badge_id" ``` 响应示例: ``` { "id": 1, "link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "image_url": "https://shields.io/my/badge", "rendered_link_url": "https://gitlab.com/gitlab-org/gitlab-foss/commits/master", "rendered_image_url": "https://shields.io/my/badge", "kind": "project" } ``` ## Remove a badge from a project[](#remove-a-badge-from-a-project "Permalink") 从项目中删除徽章. 使用此端点将仅删除项目的标志. ``` DELETE /projects/:id/badges/:badge_id ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) | | `badge_id` | integer | yes | 徽章 ID | ``` curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/badges/:badge_id" ``` ## Preview a badge from a project[](#preview-a-badge-from-a-project "Permalink") 返回解析占位符插值后的`link_url`和`image_url`最终 URL. ``` GET /projects/:id/badges/render ``` | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) | | `link_url` | string | yes | 徽章链接的 URL | | `image_url` | string | yes | 徽章图片的网址 | ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/badges/render?link_url=http%3A%2F%2Fexample.com%2Fci_status.svg%3Fproject%3D%25%7Bproject_path%7D%26ref%3D%25%7Bdefault_branch%7D&image_url=https%3A%2F%2Fshields.io%2Fmy%2Fbadge" ``` 响应示例: ``` { "link_url": "http://example.com/ci_status.svg?project=%{project_path}&ref=%{default_branch}", "image_url": "https://shields.io/my/badge", "rendered_link_url": "http://example.com/ci_status.svg?project=example-org/example-project&ref=master", "rendered_image_url": "https://shields.io/my/badge", } ```