使用 gitlab api 更新和提交文件

Posted

技术标签:

【中文标题】使用 gitlab api 更新和提交文件【英文标题】:Updating and committing file by using gitlab api 【发布时间】:2018-01-31 22:20:18 【问题描述】:

我想更新文件内容并提交。为了能够实现,我从 url 中查看了 gitlab 的 api; http://mygitlabadress/help/api/README.md

它说更新现有文件是这样完成的; http://mygitlabadress/help/api/repository_files.md#update-existing-file-in-repository

我按照说明写; http://mygitlabadress/api/v4/projects/:id/repository/files/file1%2Ffile2%2Ftest?ref=master&author_name=name%20surname&content=some%20other%20content&commit_message=update%20file&private_token=:PRIVATE_TOKEN

这返回为; "file_name":"test","file_path":"file1/file2/test","size":5,"encoding":"base64","content":"ZmRhcwo=","re​​f":"master ","blob_id":"e1afa79f4...","commit_id":"5d61796...","last_commit_id":"5d617962a23c07345e68..."

但是当我检查主分支上的提交时。提交未完成。我不明白为什么会这样。上述请求不会返回错误。相反,它在提交完成时返回。

我错过了什么?如何更新文件并提交?

【问题讨论】:

【参考方案1】:

看起来您正在发出 GET 请求而不是 PUT。

你在使用 curl 吗?您应该使用文档中给出的示例curl 请求:

curl --request PUT --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fproject%2Erb?branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20other%20content&commit_message=update%20file'

【讨论】:

以上是关于使用 gitlab api 更新和提交文件的主要内容,如果未能解决你的问题,请参考以下文章

更新文件并使用gitlab进行提交

提交本地文件至gitlab已有的项目中(更新gitlab)

gitlab怎么通过api来获得每个文件最新的commits

gitlab的简单使用

git gitlab 使用 提交代码解决冲突

gitlab怎么通过api来获得每个文件最新的commits