GET /repos/search
Name | Type | Description |
---|---|---|
q | string | Required Keyword of username |
uid | int | User ID to specify search whose repositories. Default is 0 and search all repositories |
limit | int | Limit number of search results. Default is 10 |
page | int | Page number. Default is 1 |
$ curl https://try.gogs.io/api/v1/repos/search?q=u&uid=1&limit=5
Status: 200 OK
{
"data": [
{
"id": 1717,
"owner": {
"id": 0,
"username": "",
"full_name": "",
"email": "",
"avatar_url": ""
},
"full_name": "unknwon/Issue-966",
"private": false,
"fork": false,
"html_url": "",
"clone_url": "",
"ssh_url": "",
"permissions": {
"admin": false,
"push": false,
"pull": false
}
},
{
"id": 154,
"owner": {
"id": 0,
"username": "",
"full_name": "",
"email": "",
"avatar_url": ""
},
"full_name": "unknwon/issue935",
"private": false,
"fork": false,
"html_url": "",
"clone_url": "",
"ssh_url": "",
"permissions": {
"admin": false,
"push": false,
"pull": false
}
}
],
"ok": true
}
List repositories that are accessible to the authenticated user.
This includes repositories owned by the authenticated user, repositories where the authenticated user is a collaborator, and repositories that the authenticated user has access to through an organization membership.
GET /user/repos
Status: 200 OK
[
{
"id": 2,
"owner": {
"id": 1,
"username": "unknwon",
"full_name": "",
"email": "fake@local",
"avatar_url": "/avatars/1"
},
"full_name": "unknwon/macaron",
"private": false,
"fork": false,
"html_url": "http://localhost:3000/unknwon/macaron",
"clone_url": "http://localhost:3000/unknwon/macaron.git",
"ssh_url": "jiahuachen@localhost:unknwon/macaron.git",
"permissions": {
"admin": true,
"push": true,
"pull": true
}
},
{
"id": 8,
"owner": {
"id": 2,
"username": "org1",
"full_name": "org1",
"email": "[email protected]",
"avatar_url": "/avatars/2"
},
"full_name": "org1/gogs",
"private": false,
"fork": false,
"html_url": "http://localhost:3000/org1/gogs",
"clone_url": "http://localhost:3000/org1/gogs.git",
"ssh_url": "jiahuachen@localhost:org1/gogs.git",
"permissions": {
"admin": true,
"push": true,
"pull": true
}
}
]
List public repositories for the specified user.
GET /users/:username/repos
List repositories that are accessible to the authenticated user.
GET /orgs/:orgname/repos
Create a new repository for the authenticated user.
POST /user/repos
Create a new repository in this organization. The authenticated user must be a owner of the specified organization.
POST /org/:org/repos
Name | Type | Description |
---|---|---|
name | string | Required The name of the repository |
description | string | A short description of the repository |
private | bool | Either true to create a private repository, or false to create a public one. Default is false |
auto_init | bool | Pass true to create an initial commit with README, .gitignore and LICENSE. Default is false |
gitignores | string | Desired language .gitignore templates to apply. Use the name of the templates. For example, "Go" or "Go,SublimeText". |
license | string | Desired LICENSE template to apply. Use the name of the template. For example, "Apache v2 License" or "MIT License". |
readme | string | Desired README template to apply. Use the name of the template. Default is Default |
If you have created file on your corresponding custom/conf/readme/My README
, then use "My README".
Currently, you can use following placeholder for corresponding values of repository:
{Name}
: Repository name{Description}
: Repository description{CloneURL.SSH}
: Repository SSH clone address{CloneURL.HTTPS}
: Repository HTTP/HTTPS clone address
{
"name": "Hello-World",
"description": "This is your first repository",
"private": false
}
Status: 201 Created
{
"id": 27,
"owner": {
"id": 1,
"username": "unknwon",
"full_name": "",
"email": "fake@local",
"avatar_url": "/avatars/1"
},
"full_name": "unknwon/Hello-World",
"private": false,
"fork": false,
"html_url": "https://try.gogs.io/unknwon/Hello-World",
"clone_url": "https://try.gogs.io/unknwon/hello-world.git",
"ssh_url": "[email protected]:unknwon/hello-world.git",
"permissions": {
"admin": true,
"push": true,
"pull": true
}
}
Migrate a repository from other Git hosting sources for the authenticated user.
POST /repos/migrate
To migrate a repository for a organization, the authenticated user must be a owner of the specified organization.
Name | Type | Description |
---|---|---|
clone_addr |
string | Required Remote Git address (HTTP/HTTPS URL or local path) |
auth_username |
string | Authorization username |
auth_password |
string | Authorization password |
uid |
int | Required User ID who takes ownership of this repository |
repo_name |
string | Required Repository name |
mirror |
bool | Repository will be a mirror. Default is false |
private |
bool | Repository will be private. Default is false |
description |
string | Repository description |
{
"clone_addr": "https://github.com/Unknwon/macaron",
"uid": 1,
"repo_name": "hello-macaron"
}
Status: 201 Created
{
"id": 19,
"owner": {
"id": 1,
"username": "unknwon",
"full_name": "",
"email": "fake@local",
"avatar_url": "//1.gravatar.com/avatar/d8b2871cdac01b57bbda23716cc03b96"
},
"full_name": "unknwon/hello-macaron",
"private": false,
"fork": false,
"html_url": "https://try.gogs.io:3000/unknwon/hello-macaron",
"clone_url": "https://try.gogs.io:3000/unknwon/hello-macaron.git",
"ssh_url": "[email protected]:unknwon/hello-macaron.git",
"permissions": {
"admin": true,
"push": true,
"pull": true
}
}
Get information of a single repository.
GET /repos/:owner/:repo
Status: 200 OK
{
"id": 19,
"owner": {
"id": 1,
"username": "unknwon",
"full_name": "",
"email": "fake@local",
"avatar_url": "//1.gravatar.com/avatar/d8b2871cdac01b57bbda23716cc03b96"
},
"full_name": "unknwon/hello-macaron",
"private": false,
"fork": false,
"html_url": "https://try.gogs.io/unknwon/hello-macaron",
"clone_url": "https://try.gogs.io/unknwon/hello-macaron.git",
"ssh_url": "[email protected]:unknwon/hello-macaron.git",
"permissions": {
"admin": true,
"push": true,
"pull": true
}
}
Deleting a repository requires owner access of repository.
DELETE /repos/:owner/:repo
Status: 204 No Content
PATCH /repos/:owner/:repo/issue-tracker
Name | Type | Description |
---|---|---|
enable_issues |
bool | Enable issue tracker for the repository. Ignore this field to leave it unchanged |
enable_external_tracker |
bool | Enable external issue tracker for the repository. Ignore this field to leave it unchanged |
external_tracker_url |
string | The URL of the external issue tracker. Ignore this field to leave it unchanged |
tracker_url_format |
string | The URL format of the external issue tracker. Ignore this field to leave it unchanged |
tracker_issue_style |
string | The naming style of the issue, can be numeric or alphanumeric. Ignore this field to leave it unchanged |
{
"enable_issues": true,
"enable_external_tracker": true,
"external_tracker_url": "https://github.com/gogs/gogs/issues",
"tracker_url_format": "https://github.com/gogs/{repo}/issues/{index}"
}
Status: 204 No Content
Add mirror repository to sync queue on behalf of the authenticated user. If the repository is not a mirror, 404 will be returned.
POST /repos/:owner/:repo/mirror-sync
Status: 202 Accepted