Create project via API: fixes added
This commit is contained in:
parent
0c5e556922
commit
e078a173d6
|
@ -102,6 +102,12 @@ Parameters:
|
||||||
+ `name` (required) - new project name
|
+ `name` (required) - new project name
|
||||||
+ `code` (optional) - new project code, uses project name if not set
|
+ `code` (optional) - new project code, uses project name if not set
|
||||||
+ `path` (optional) - new project path, uses project name if not set
|
+ `path` (optional) - new project path, uses project name if not set
|
||||||
|
+ `description (optional) - short project description
|
||||||
|
+ `default_branch` (optional) - 'master' by default
|
||||||
|
+ `issues_enabled` (optional) - enabled by default
|
||||||
|
+ `wall_enabled` (optional) - enabled by default
|
||||||
|
+ `merge_requests_enabled` (optional) - enabled by default
|
||||||
|
+ `wiki_enabled` (optional) - enabled by default
|
||||||
|
|
||||||
Will return created project with status `201 Created` on success, or `404 Not
|
Will return created project with status `201 Created` on success, or `404 Not
|
||||||
found` on fail.
|
found` on fail.
|
||||||
|
|
|
@ -29,14 +29,26 @@ module Gitlab
|
||||||
# name (required) - name for new project
|
# name (required) - name for new project
|
||||||
# code (optional) - code for new project, uses project name if not set
|
# code (optional) - code for new project, uses project name if not set
|
||||||
# path (optional) - path for new project, uses project name if not set
|
# path (optional) - path for new project, uses project name if not set
|
||||||
|
# description (optional) - short project description
|
||||||
|
# default_branch (optional) - 'master' by default
|
||||||
|
# issues_enabled (optional) - enabled by default
|
||||||
|
# wall_enabled (optional) - enabled by default
|
||||||
|
# merge_requests_enabled (optional) - enabled by default
|
||||||
|
# wiki_enabled (optional) - enabled by default
|
||||||
# Example Request
|
# Example Request
|
||||||
# POST /projects
|
# POST /projects
|
||||||
post do
|
post do
|
||||||
project = {}
|
@project = Project.create_by_user({
|
||||||
project[:name] = params[:name]
|
name: params[:name],
|
||||||
project[:code] = params[:code] || project[:name]
|
code: (params[:code] || params[:name]),
|
||||||
project[:path] = params[:path] || project[:name]
|
path: (params[:path] || params[:name]),
|
||||||
@project = Project.create_by_user(project, current_user)
|
description: (params[:description] || Project.columns_hash["description"].default),
|
||||||
|
default_branch: (params[:default_branch] || Project.columns_hash["default_branch"].default),
|
||||||
|
issues_enabled: (params[:issues_enabled] || Project.columns_hash["issues_enabled"].default),
|
||||||
|
wall_enabled: (params[:wall_enabled] || Project.columns_hash["wall_enabled"].default),
|
||||||
|
merge_requests_enabled: (params[:merge_requests_enabled] || Project.columns_hash["merge_requests_enabled"].default),
|
||||||
|
wiki_enabled: (params[:wiki_enabled] || Project.columns_hash["wiki_enabled"].default)
|
||||||
|
}, current_user)
|
||||||
if @project.saved?
|
if @project.saved?
|
||||||
present @project, with: Entities::Project
|
present @project, with: Entities::Project
|
||||||
else
|
else
|
||||||
|
|
|
@ -27,7 +27,7 @@ describe Gitlab::API do
|
||||||
|
|
||||||
describe "POST /projects" do
|
describe "POST /projects" do
|
||||||
it "should create new project without code and path" do
|
it "should create new project without code and path" do
|
||||||
lambda {
|
expect {
|
||||||
name = "foo"
|
name = "foo"
|
||||||
post api("/projects", user), {
|
post api("/projects", user), {
|
||||||
name: name
|
name: name
|
||||||
|
@ -39,7 +39,41 @@ describe Gitlab::API do
|
||||||
}.should change{Project.count}.by(1)
|
}.should change{Project.count}.by(1)
|
||||||
end
|
end
|
||||||
it "should create new project" do
|
it "should create new project" do
|
||||||
lambda {
|
expect {
|
||||||
|
name = "foo"
|
||||||
|
path = "bar"
|
||||||
|
code = "bazz"
|
||||||
|
description = "fuu project"
|
||||||
|
default_branch = "default_branch"
|
||||||
|
issues_enabled = false
|
||||||
|
wall_enabled = false
|
||||||
|
merge_requests_enabled = false
|
||||||
|
wiki_enabled = false
|
||||||
|
post api("/projects", user), {
|
||||||
|
code: code,
|
||||||
|
path: path,
|
||||||
|
name: name,
|
||||||
|
description: description,
|
||||||
|
default_branch: default_branch,
|
||||||
|
issues_enabled: issues_enabled,
|
||||||
|
wall_enabled: wall_enabled,
|
||||||
|
merge_requests_enabled: merge_requests_enabled,
|
||||||
|
wiki_enabled: wiki_enabled
|
||||||
|
}
|
||||||
|
response.status.should == 201
|
||||||
|
json_response["name"].should == name
|
||||||
|
json_response["path"].should == path
|
||||||
|
json_response["code"].should == code
|
||||||
|
json_response["description"].should == description
|
||||||
|
json_response["default_branch"].should == default_branch
|
||||||
|
json_response["issues_enabled"].should == issues_enabled
|
||||||
|
json_response["wall_enabled"].should == wall_enabled
|
||||||
|
json_response["merge_requests_enabled"].should == merge_requests_enabled
|
||||||
|
json_response["wiki_enabled"].should == wiki_enabled
|
||||||
|
}.should change{Project.count}.by(1)
|
||||||
|
end
|
||||||
|
it "should create new projects within all parameters" do
|
||||||
|
expect {
|
||||||
name = "foo"
|
name = "foo"
|
||||||
path = "bar"
|
path = "bar"
|
||||||
code = "bazz"
|
code = "bazz"
|
||||||
|
@ -53,9 +87,10 @@ describe Gitlab::API do
|
||||||
json_response["path"].should == path
|
json_response["path"].should == path
|
||||||
json_response["code"].should == code
|
json_response["code"].should == code
|
||||||
}.should change{Project.count}.by(1)
|
}.should change{Project.count}.by(1)
|
||||||
|
|
||||||
end
|
end
|
||||||
it "should not create project without name" do
|
it "should not create project without name" do
|
||||||
lambda {
|
expect {
|
||||||
post api("/projects", user)
|
post api("/projects", user)
|
||||||
response.status.should == 404
|
response.status.should == 404
|
||||||
}.should_not change{Project.count}
|
}.should_not change{Project.count}
|
||||||
|
|
Loading…
Reference in a new issue