gitlab-org--gitlab-foss/doc/api/repository_files.md

103 lines
2 KiB
Markdown
Raw Normal View History

2014-05-27 08:12:15 -04:00
# Repository files
## CRUD for repository files
## Create, read, update and delete repository files using this API
2014-04-24 18:48:22 -04:00
---
## Get file from repository
2014-04-24 18:48:22 -04:00
Allows you to receive information about file in repository like name, size, content. Note that file content is Base64 encoded.
```
GET /projects/:id/repository/files
```
Example response:
```json
{
"file_name": "key.rb",
"file_path": "app/models/key.rb",
"size": 1476,
"encoding": "base64",
"content": "IyA9PSBTY2hlbWEgSW5mb3...",
"ref": "master",
"blob_id": "79f7bbd25901e8334750839545a9bd021f0e4c83",
"commit_id": "d5a3ff139356ce33e37e73add446f16869741b50"
}
```
Parameters:
2014-04-24 18:48:22 -04:00
- `file_path` (required) - Full path to new file. Ex. lib/class.rb
- `ref` (required) - The name of branch, tag or commit
## Create new file in repository
```
POST /projects/:id/repository/files
```
Example response:
```json
{
"file_name": "app/project.rb",
2014-04-05 02:36:47 -04:00
"branch_name": "master"
}
```
Parameters:
2014-04-24 18:48:22 -04:00
- `file_path` (required) - Full path to new file. Ex. lib/class.rb
- `branch_name` (required) - The name of branch
- `encoding` (optional) - 'text' or 'base64'. Text is default.
- `content` (required) - File content
- `commit_message` (required) - Commit message
## Update existing file in repository
```
PUT /projects/:id/repository/files
```
Example response:
```json
{
"file_name": "app/project.rb",
2014-04-05 02:36:47 -04:00
"branch_name": "master"
}
```
Parameters:
2014-04-24 18:48:22 -04:00
- `file_path` (required) - Full path to file. Ex. lib/class.rb
- `branch_name` (required) - The name of branch
- `encoding` (optional) - 'text' or 'base64'. Text is default.
- `content` (required) - New file content
- `commit_message` (required) - Commit message
## Delete existing file in repository
```
DELETE /projects/:id/repository/files
```
Example response:
```json
{
"file_name": "app/project.rb",
2014-04-05 02:36:47 -04:00
"branch_name": "master"
}
```
Parameters:
2014-04-24 18:48:22 -04:00
- `file_path` (required) - Full path to file. Ex. lib/class.rb
- `branch_name` (required) - The name of branch
- `commit_message` (required) - Commit message