# Repository submodules API

> 原文：[https://docs.gitlab.com/ee/api/repository_submodules.html](https://docs.gitlab.com/ee/api/repository_submodules.html)

*   [Update existing submodule reference in repository](#update-existing-submodule-reference-in-repository)

# Repository submodules API[](#repository-submodules-api "Permalink")

在 GitLab 11.5 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41213)

## Update existing submodule reference in repository[](#update-existing-submodule-reference-in-repository "Permalink")

在某些工作流程中，尤其是自动化的工作流程中，更新子模块的引用以使使用它的其他项目保持最新是很有用的. 该端点允许您在特定分支中更新[Git 子模块](https://git-scm.com/book/en/v2/Git-Tools-Submodules)引用.

```
PUT /projects/:id/repository/submodules/:submodule 
```

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer/string | yes | 经过身份验证的用户拥有[的项目](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) |
| `submodule` | string | yes | URL 编码的子模块完整路径. 例如， `lib/class.rb` |
| `branch` | string | yes | 要提交的分支名称 |
| `commit_sha` | string | yes | 完全提交 SHA 以将子模块更新为 |
| `commit_message` | string | no | 提交消息. 如果未提供任何消息，则将设置默认消息 |

```
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/submodules/lib%2Fmodules%2Fexample"
--data "branch=master&commit_sha=3ddec28ea23acc5caa5d8331a6ecb2a65fc03e88&commit_message=Update submodule reference" 
```

响应示例：

```
{  "id":  "ed899a2f4b50b4370feeea94676502b42383c746",  "short_id":  "ed899a2f4b5",  "title":  "Updated submodule example_submodule with oid 3ddec28ea23acc5caa5d8331a6ecb2a65fc03e88",  "author_name":  "Dmitriy Zaporozhets",  "author_email":  "dzaporozhets@sphereconsultinginc.com",  "committer_name":  "Dmitriy Zaporozhets",  "committer_email":  "dzaporozhets@sphereconsultinginc.com",  "created_at":  "2018-09-20T09:26:24.000-07:00",  "message":  "Updated submodule example_submodule with oid 3ddec28ea23acc5caa5d8331a6ecb2a65fc03e88",  "parent_ids":  [  "ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"  ],  "committed_date":  "2018-09-20T09:26:24.000-07:00",  "authored_date":  "2018-09-20T09:26:24.000-07:00",  "status":  null  } 
```