summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-01-09 17:40:01 +0100
committerzeripath <art27@cantab.net>2020-01-09 16:40:01 +0000
commite8ea0695b01c1439586a4e62fcfdfb0835f5b835 (patch)
tree7b89dfa8305f148c6b885c948174716ba1df7bb2
parent07520431aec1cbe115e5d85b038f6a9f1e0e7296 (diff)
downloadgitea-e8ea0695b01c1439586a4e62fcfdfb0835f5b835.tar.gz
gitea-e8ea0695b01c1439586a4e62fcfdfb0835f5b835.zip
[API] creat org repo call same as github (#9186)
* deprecate /api/v1/org/{org}/repos in favour of /api/v1/orgs/{org}/repos + cleanup api repository routes a bit * remove redundant code * use upstream function for api cal * make generate-swagger Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
-rw-r--r--routers/api/v1/api.go13
-rw-r--r--routers/api/v1/repo/repo.go38
-rw-r--r--templates/swagger/v1_json.tmpl44
3 files changed, 84 insertions, 11 deletions
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index ccce00e2b2..fd7f7c05cf 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -604,17 +604,15 @@ func RegisterRoutes(m *macaron.Macaron) {
}, reqToken())
// Repositories
- m.Post("/org/:org/repos", reqToken(), bind(api.CreateRepoOption{}), repo.CreateOrgRepo)
+ m.Post("/org/:org/repos", reqToken(), bind(api.CreateRepoOption{}), repo.CreateOrgRepoDeprecated)
+
+ m.Combo("/repositories/:id", reqToken()).Get(repo.GetByID)
m.Group("/repos", func() {
m.Get("/search", repo.Search)
- })
- m.Get("/repos/issues/search", repo.SearchIssues)
+ m.Get("/issues/search", repo.SearchIssues)
- m.Combo("/repositories/:id", reqToken()).Get(repo.GetByID)
-
- m.Group("/repos", func() {
m.Post("/migrate", reqToken(), bind(auth.MigrateRepoForm{}), repo.Migrate)
m.Group("/:username/:reponame", func() {
@@ -824,10 +822,11 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/users/:username/orgs", org.ListUserOrgs)
m.Post("/orgs", reqToken(), bind(api.CreateOrgOption{}), org.Create)
m.Group("/orgs/:orgname", func() {
- m.Get("/repos", user.ListOrgRepos)
m.Combo("").Get(org.Get).
Patch(reqToken(), reqOrgOwnership(), bind(api.EditOrgOption{}), org.Edit).
Delete(reqToken(), reqOrgOwnership(), org.Delete)
+ m.Combo("/repos").Get(user.ListOrgRepos).
+ Post(reqToken(), bind(api.CreateRepoOption{}), repo.CreateOrgRepo)
m.Group("/members", func() {
m.Get("", org.ListMembers)
m.Combo("/:username").Get(org.IsMember).
diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go
index 8f34d8cca3..ae834beadf 100644
--- a/routers/api/v1/repo/repo.go
+++ b/routers/api/v1/repo/repo.go
@@ -283,11 +283,12 @@ func Create(ctx *context.APIContext, opt api.CreateRepoOption) {
CreateUserRepo(ctx, ctx.User, opt)
}
-// CreateOrgRepo create one repository of the organization
-func CreateOrgRepo(ctx *context.APIContext, opt api.CreateRepoOption) {
- // swagger:operation POST /org/{org}/repos organization createOrgRepo
+// CreateOrgRepoDeprecated create one repository of the organization
+func CreateOrgRepoDeprecated(ctx *context.APIContext, opt api.CreateRepoOption) {
+ // swagger:operation POST /org/{org}/repos organization createOrgRepoDeprecated
// ---
// summary: Create a repository in an organization
+ // deprecated: true
// consumes:
// - application/json
// produces:
@@ -310,6 +311,37 @@ func CreateOrgRepo(ctx *context.APIContext, opt api.CreateRepoOption) {
// "403":
// "$ref": "#/responses/forbidden"
+ CreateOrgRepo(ctx, opt)
+}
+
+// CreateOrgRepo create one repository of the organization
+func CreateOrgRepo(ctx *context.APIContext, opt api.CreateRepoOption) {
+ // swagger:operation POST /orgs/{org}/repos organization createOrgRepo
+ // ---
+ // summary: Create a repository in an organization
+ // deprecated: true
+ // consumes:
+ // - application/json
+ // produces:
+ // - application/json
+ // parameters:
+ // - name: org
+ // in: path
+ // description: name of organization
+ // type: string
+ // required: true
+ // - name: body
+ // in: body
+ // schema:
+ // "$ref": "#/definitions/CreateRepoOption"
+ // responses:
+ // "201":
+ // "$ref": "#/responses/Repository"
+ // "404":
+ // "$ref": "#/responses/notFound"
+ // "403":
+ // "$ref": "#/responses/forbidden"
+
org, err := models.GetOrgByName(ctx.Params(":org"))
if err != nil {
if models.IsErrOrgNotExist(err) {
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 79f760b7ab..6bad462196 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -574,7 +574,8 @@
"organization"
],
"summary": "Create a repository in an organization",
- "operationId": "createOrgRepo",
+ "operationId": "createOrgRepoDeprecated",
+ "deprecated": true,
"parameters": [
{
"type": "string",
@@ -1140,6 +1141,47 @@
"$ref": "#/responses/RepositoryList"
}
}
+ },
+ "post": {
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "organization"
+ ],
+ "summary": "Create a repository in an organization",
+ "operationId": "createOrgRepo",
+ "deprecated": true,
+ "parameters": [
+ {
+ "type": "string",
+ "description": "name of organization",
+ "name": "org",
+ "in": "path",
+ "required": true
+ },
+ {
+ "name": "body",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/CreateRepoOption"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "$ref": "#/responses/Repository"
+ },
+ "403": {
+ "$ref": "#/responses/forbidden"
+ },
+ "404": {
+ "$ref": "#/responses/notFound"
+ }
+ }
}
},
"/orgs/{org}/teams": {