我需要上传整个项目文件夹,其中包含来自API的多个文本文件,图像文件,源文件等。
我经历了Gitlab提交并上传了API,但没有一个符合要求。
有没有可以上传完整项目文件夹表单API的API?
我使用下面的API创建一个项目
POST:https://repo.virtusa.com/api/v4/projects
{
"name":"test",
"default_branch": "master"
}
答案 0 :(得分:0)
使用gitlab api创建新项目后,例如:
{ data, isLoading }
您可以根据发布数据curl --fail -d '{"name":"test","default_branch": "master"}' -H "Content-Type: application/json" -X POST https://repo.virtusa.com/api/v4/projects?access_token=<your access token> --output project_details.json
-> name
来假设您的新项目url,或者可以使用某些工具(例如python:
https://repo.virtusa.com/<gitlab user or gitlab group>/test.git
然后您可以按照现有文件夹的新项目说明进行操作:
http_url_to_repo=$(python -c "import json; print(json.load(open('project_details.json'))['http_url_to_repo'])")
#Push an existing folder
cd existing_folder
git init
git remote add origin $http_url_to_repo
git add .
git commit -m "Initial commit"
git push -u origin master
所在的文件夹中包含要上传为新gitlab项目的提交的源文件。
答案 1 :(得分:0)
您可以使用存储库文件API创建文件。
POST /projects/:id/repository/files/:file_path
curl --request POST --header 'PRIVATE-TOKEN: <your_access_token>' --header "Content-Type: application/json" \
--data '{"branch": "master", "author_email": "author@example.com", "author_name": "Firstname Lastname", \
"content": "some content", "commit_message": "create a new file"}' \
'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fproject%2Erb'