---
url: /zh/repo/annotations.md
description: |
  介绍仓库元数据功能， 支持为 Tag 和 Commit 存储键值对形式的注解数据， 并说明如何在页面查看以及通过 API 增删查元数据。
---
## 什么是元数据？

元数据是仓库提供的数据存储能力，支持为 Tag 和 Commit 存储键值对形式的注解信息。

## 存储形式

以 `key: value` 键值对形式存储，例如：Tag `v1.0.0` 的元数据：

```yaml
key1: value1
key2: value2
# ...
```

## 查看方式

* **Tag 元数据**：仓库 → Tag 或 Release 列表 → 详情 → 元数据（无数据时不展示）
* **Commit 元数据**：仓库 → Commit 列表 → 详情 → 元数据

> 目前页面仅支持查看，不支持增删改操作。

## 管理操作

可在云原生构建流水线中通过插件增删查元数据，
详见 [元数据插件](https://cnb.cool/cnb/plugins/cnbcool/annotations)。

例如，在 `push` 事件中为本次提交写入一条构建信息元数据：

```yaml title=".cnb.yml"
main:
  push:
    - stages:
        - name: 写入元数据
          image: cnbcool/annotations:latest
          settings:
            type: ADD
            data: |
              build-id=$CNB_BUILD_ID
              commit=$CNB_COMMIT_SHORT
```

`push` 等非 Tag 事件默认将元数据写入当前 Commit；
`tag_push`、`tag_deploy.*` 事件默认写入对应的 Tag。
写入成功后，进入仓库的 Commit（或 Tag）详情页即可在「元数据」中查看。
