Helm API
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
This is the API documentation for Helm.
For instructions on how to upload and install Helm packages from the GitLab package registry, see the Helm registry documentation.
These endpoints do not adhere to the standard API authentication methods. See the Helm registry documentation for details on which headers and token types are supported. Undocumented authentication methods might be removed in the future.
Download a chart index
To ensure consistent chart download URLs, the contextPath field in index.yaml responses
always uses the numeric project ID, whether you access the API with the project ID or the
full project path.
Download a chart index:
GET projects/:id/packages/helm/:channel/index.yaml| Attribute | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ID or full path of the project. |
channel |
string | yes | Helm repository channel. |
curl --user <username>:<personal_access_token> \
--url "https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/index.yaml"Write the output to a file:
curl --user <username>:<personal_access_token> \
--url "https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/index.yaml" \
--remote-nameDownload a chart
Download a chart:
GET projects/:id/packages/helm/:channel/charts/:file_name.tgz| Attribute | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ID or full path of the project. |
channel |
string | yes | Helm repository channel. |
file_name |
string | yes | Chart filename. |
curl --user <username>:<personal_access_token> \
--url "https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/charts/mychart.tgz" \
--remote-nameUpload a chart
Upload a chart:
POST projects/:id/packages/helm/api/:channel/charts| Attribute | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ID or full path of the project. |
channel |
string | yes | Helm repository channel. |
chart |
file | yes | Chart (as multipart/form-data). |
curl --request POST \
--form 'chart=@mychart.tgz' \
--user <username>:<personal_access_token> \
--url "https://gitlab.example.com/api/v4/projects/1/packages/helm/api/stable/charts"