@@ -11,11 +11,11 @@ content. Note that file content is Base64 encoded. This endpoint can be accessed
without authentication if the repository is publicly accessible.
```
GET /projects/:id/repository/files
GET /projects/:id/repository/files/:file_path
```
```bash
curl --request GET --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/files?file_path=app/models/key.rb&ref=master'
curl --request GET --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb?ref=master'
```
Example response:
...
...
@@ -36,17 +36,32 @@ Example response:
Parameters:
-`file_path` (required) - Full path to new file. Ex. lib/class.rb
-`file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
-`ref` (required) - The name of branch, tag or commit
## Get raw file from repository
```
GET /projects/:id/repository/files/:file_path/raw
```
```bash
curl --request GET --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb/raw?ref=master'
```
Parameters:
-`file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
-`ref` (required) - The name of branch, tag or commit
## Create new file in repository
```
POST /projects/:id/repository/files
POST /projects/:id/repository/files/:file_path
```
```bash
curl --request POST --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/files?file_path=app/project.rb&branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20content&commit_message=create%20a%20new%20file'
curl --request POST --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/app%2Fprojectrb%2E?branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20content&commit_message=create%20a%20new%20file'
```
Example response:
...
...
@@ -60,7 +75,7 @@ Example response:
Parameters:
-`file_path` (required) - Full path to new file. Ex. lib/class.rb
-`file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
-`branch` (required) - The name of branch
-`encoding` (optional) - Change encoding to 'base64'. Default is text.
-`author_email` (optional) - Specify the commit author's email address
...
...
@@ -71,11 +86,11 @@ Parameters:
## Update existing file in repository
```
PUT /projects/:id/repository/files
PUT /projects/:id/repository/files/:file_path
```
```bash
curl --request PUT --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/files?file_path=app/project.rb&branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20other%20content&commit_message=update%20file'
curl --request PUT --header'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK''https://gitlab.example.com/api/v4/projects/13083/repository/app%2Fproject%2Erb?branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20other%20content&commit_message=update%20file'
```
Example response:
...
...
@@ -89,7 +104,7 @@ Example response:
Parameters:
-`file_path` (required) - Full path to file. Ex. lib/class.rb
-`file_path` (required) - Url encoded full path to new file. Ex. lib%2Fclass%2Erb
-`branch` (required) - The name of branch
-`encoding` (optional) - Change encoding to 'base64'. Default is text.
-`author_email` (optional) - Specify the commit author's email address
...
...
@@ -109,11 +124,11 @@ Currently gitlab-shell has a boolean return code, preventing GitLab from specify
@@ -75,4 +75,8 @@ Below are the changes made between V3 and V4.
- API uses issue `IID`s (internal ID, as in the web UI) rather than `ID`s. This affects the issues, award emoji, todos, and time tracking APIs. [!9530](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9530)
- Change initial page from `0` to `1` on `GET projects/:id/repository/commits` (like on the rest of the API) [!9679] (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679)
- Return correct `Link` header data for `GET projects/:id/repository/commits` [!9679] (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679)
- Update endpoints for repository files [!9637](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9637)
- Moved `/projects/:id/repository/files?file_path=:file_path` to `/projects/:id/repository/files/:file_path` (`:file_path` should be URL-encoded)
-`/projects/:id/repository/blobs/:sha` now returns JSON attributes for the blob identified by `:sha`, instead of finding the commit identified by `:sha` and returning the raw content of the blob in that commit identified by the required `?filepath=:filepath`
- Moved `/projects/:id/repository/commits/:sha/blob?file_path=:file_path` and `/projects/:id/repository/blobs/:sha?file_path=:file_path` to `/projects/:id/repository/files/:file_path/raw?ref=:sha`
-`/projects/:id/repository/tree` parameter `ref_name` has been renamed to `ref` for consistency