Commit 2be3a012 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'master' of github.com:gitlabhq/gitlabhq

parents d899bc91 d9f84f68
...@@ -336,9 +336,9 @@ ActiveRecord::Schema.define(version: 20150211174341) do ...@@ -336,9 +336,9 @@ ActiveRecord::Schema.define(version: 20150211174341) do
t.string "import_status" t.string "import_status"
t.float "repository_size", default: 0.0 t.float "repository_size", default: 0.0
t.integer "star_count", default: 0, null: false t.integer "star_count", default: 0, null: false
t.string "avatar"
t.string "import_type" t.string "import_type"
t.string "import_source" t.string "import_source"
t.string "avatar"
end end
add_index "projects", ["created_at", "id"], name: "index_projects_on_created_at_and_id", using: :btree add_index "projects", ["created_at", "id"], name: "index_projects_on_created_at_and_id", using: :btree
......
# From 2.6 to 3.0 # From 2.6 to 3.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/2.6-to-3.0.md) for the most up to date instructions.*
## 1. Stop server & resque ## 1. Stop server & resque
......
# From 2.9 to 3.0 # From 2.9 to 3.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/2.9-to-3.0.md) for the most up to date instructions.*
## 1. Stop server & resque ## 1. Stop server & resque
......
# From 3.0 to 3.1 # From 3.0 to 3.1
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/3.0-to-3.1.md) for the most up to date instructions.*
**IMPORTANT!** **IMPORTANT!**
......
# From 3.1 to 4.0 # From 3.1 to 4.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/3.1-to-4.0.md) for the most up to date instructions.*
## Important changes ## Important changes
......
# From 4.0 to 4.1 # From 4.0 to 4.1
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/4.0-to-4.1.md) for the most up to date instructions.*
## Important changes ## Important changes
......
# From 4.1 to 4.2 # From 4.1 to 4.2
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/4.1-to-4.2.md) for the most up to date instructions.*
## 1. Stop server & Resque ## 1. Stop server & Resque
......
# From 4.2 to 5.0 # From 4.2 to 5.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/4.2-to-5.0.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 5.0 to 5.1 # From 5.0 to 5.1
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.0-to-5.1.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 5.1 to 5.2 # From 5.1 to 5.2
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.1-to-5.2.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 5.1 to 5.4 # From 5.1 to 5.4
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.1-to-5.4.md) for the most up to date instructions.*
Also works starting from 5.2. Also works starting from 5.2.
......
# From 5.1 to 6.0 # From 5.1 to 6.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.1-to-6.0.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 5.2 to 5.3 # From 5.2 to 5.3
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.2-to-5.3.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 5.3 to 5.4 # From 5.3 to 5.4
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.3-to-5.4.md) for the most up to date instructions.*
## 0. Backup ## 0. Backup
......
# From 5.4 to 6.0 # From 5.4 to 6.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/5.4-to-6.0.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 6.0 to 6.1 # From 6.0 to 6.1
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.0-to-6.1.md) for the most up to date instructions.*
## Warning ## Warning
......
# From 6.1 to 6.2 # From 6.1 to 6.2
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.1-to-6.2.md) for the most up to date instructions.*
**You should update to 6.1 before installing 6.2 so all the necessary conversions are run.** **You should update to 6.1 before installing 6.2 so all the necessary conversions are run.**
......
# From 6.2 to 6.3 # From 6.2 to 6.3
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.2-to-6.3.md) for the most up to date instructions.*
**Requires version: 6.1 or 6.2.** **Requires version: 6.1 or 6.2.**
......
# From 6.3 to 6.4 # From 6.3 to 6.4
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.3-to-6.4.md) for the most up to date instructions.*
## 0. Backup ## 0. Backup
......
# From 6.4 to 6.5 # From 6.4 to 6.5
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.4-to-6.5.md) for the most up to date instructions.*
## 0. Backup ## 0. Backup
......
# From 6.5 to 6.6 # From 6.5 to 6.6
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.5-to-6.6.md) for the most up to date instructions.*
## 0. Backup ## 0. Backup
......
# From 6.6 to 6.7 # From 6.6 to 6.7
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.6-to-6.7.md) for the most up to date instructions.*
## 0. Backup ## 0. Backup
......
# From 6.7 to 6.8 # From 6.7 to 6.8
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.7-to-6.8.md) for the most up to date instructions.*
## 0. Backup ## 0. Backup
......
# From 6.8 to 6.9 # From 6.8 to 6.9
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.8-to-6.9.md) for the most up to date instructions.*
### 0. Backup ### 0. Backup
......
# From 6.9 to 7.0 # From 6.9 to 7.0
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.9-to-7.0.md) for the most up to date instructions.*
### 0. Backup ### 0. Backup
......
# From 6.x or 7.x to 7.7 # From 6.x or 7.x to 7.7
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/6.x-or-7.x-to-7.4.md) for the most up to date instructions.*
This allows you to upgrade any version of GitLab from 6.0 and up (including 7.0 and up) to 7.7. This allows you to upgrade any version of GitLab from 6.0 and up (including 7.0 and up) to 7.7.
...@@ -199,7 +200,7 @@ If all items are green, then congratulations upgrade complete! ...@@ -199,7 +200,7 @@ If all items are green, then congratulations upgrade complete!
When using Google omniauth login, changes of the Google account required. When using Google omniauth login, changes of the Google account required.
Ensure that `Contacts API` and the `Google+ API` are enabled in the [Google Developers Console](https://console.developers.google.com/). Ensure that `Contacts API` and the `Google+ API` are enabled in the [Google Developers Console](https://console.developers.google.com/).
More details can be found at the [integration documentation](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/integration/google.md). More details can be found at the [integration documentation](../../../master/doc/integration/google.md).
## 12. Optional optimizations for GitLab setups with MySQL databases ## 12. Optional optimizations for GitLab setups with MySQL databases
......
# From 7.0 to 7.1 # From 7.0 to 7.1
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/7.0-to-7.1.md) for the most up to date instructions.*
### 0. Backup ### 0. Backup
......
# From 7.1 to 7.2 # From 7.1 to 7.2
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/7.1-to-7.2.md) for the most up to date instructions.*
## Editable labels ## Editable labels
......
# From 7.2 to 7.3 # From 7.2 to 7.3
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/7.2-to-7.3.md) for the most up to date instructions.*
### 0. Backup ### 0. Backup
......
# From 7.3 to 7.4 # From 7.3 to 7.4
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/7.3-to-7.4.md) for the most up to date instructions.*
### 0. Stop server ### 0. Stop server
......
# Migrating GitLab from MySQL to Postgres # Migrating GitLab from MySQL to Postgres
*Make sure you view this [guide from the `master` branch](../../../master/doc/update/mysql_to_postgresql.md) for the most up to date instructions.*
If you are replacing MySQL with Postgres while keeping GitLab on the same server all you need to do is to export from MySQL, import into Postgres and rebuild the indexes as described below. If you are also moving GitLab to another server, or if you are switching to omnibus-gitlab, you may want to use a GitLab backup file. The second part of this documents explains the procedure to do this. If you are replacing MySQL with Postgres while keeping GitLab on the same server all you need to do is to export from MySQL, import into Postgres and rebuild the indexes as described below. If you are also moving GitLab to another server, or if you are switching to omnibus-gitlab, you may want to use a GitLab backup file. The second part of this documents explains the procedure to do this.
......
# Universal update guide for patch versions # Universal update guide for patch versions
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/patch_versions.md) for the most up to date instructions.*
For example from 6.2.0 to 6.2.1, also see the [semantic versioning specification](http://semver.org/). For example from 6.2.0 to 6.2.1, also see the [semantic versioning specification](http://semver.org/).
......
# GitLab Upgrader # GitLab Upgrader
*Make sure you view this [upgrade guide from the `master` branch](../../../master/doc/update/upgrader.md) for the most up to date instructions.*
GitLab Upgrader - a ruby script that allows you easily upgrade GitLab to latest minor version. GitLab Upgrader - a ruby script that allows you easily upgrade GitLab to latest minor version.
......
...@@ -119,57 +119,33 @@ describe API::API, api: true do ...@@ -119,57 +119,33 @@ describe API::API, api: true do
describe 'POST /projects' do describe 'POST /projects' do
context 'maximum number of projects reached' do context 'maximum number of projects reached' do
before do it 'should not create new project and respond with 403' do
(1..user2.projects_limit).each do |project| User.any_instance.stub(:projects_limit_left).and_return(0)
post api('/projects', user2), name: "foo#{project}"
end
end
it 'should not create new project' do
expect { expect {
post api('/projects', user2), name: 'foo' post api('/projects', user2), name: 'foo'
}.to change {Project.count}.by(0) }.to change {Project.count}.by(0)
response.status.should == 403
end end
end end
it 'should create new project without path' do it 'should create new project without path and return 201' do
expect { post api('/projects', user), name: 'foo' }.to change {Project.count}.by(1) expect { post api('/projects', user), name: 'foo' }.
end to change { Project.count }.by(1)
response.status.should == 201
it 'should not create new project without name' do
expect { post api('/projects', user) }.to_not change {Project.count}
end
it 'should return a 400 error if name not given' do
post api('/projects', user)
response.status.should == 400
end end
it 'should create last project before reaching project limit' do it 'should create last project before reaching project limit' do
(1..user2.projects_limit-1).each { |p| post api('/projects', user2), name: "foo#{p}" } User.any_instance.stub(:projects_limit_left).and_return(1)
post api('/projects', user2), name: 'foo' post api('/projects', user2), name: 'foo'
response.status.should == 201 response.status.should == 201
end end
it 'should respond with 201 on success' do it 'should not create new project without name and return 400' do
post api('/projects', user), name: 'foo' expect { post api('/projects', user) }.to_not change { Project.count }
response.status.should == 201
end
it 'should respond with 400 if name is not given' do
post api('/projects', user)
response.status.should == 400 response.status.should == 400
end end
it 'should return a 403 error if project limit reached' do it "should assign attributes to project" do
(1..user.projects_limit).each do |p|
post api('/projects', user), name: "foo#{p}"
end
post api('/projects', user), name: 'bar'
response.status.should == 403
end
it 'should assign attributes to project' do
project = attributes_for(:project, { project = attributes_for(:project, {
path: 'camelCasePath', path: 'camelCasePath',
description: Faker::Lorem.sentence, description: Faker::Lorem.sentence,
...@@ -232,21 +208,15 @@ describe API::API, api: true do ...@@ -232,21 +208,15 @@ describe API::API, api: true do
before { project } before { project }
before { admin } before { admin }
it 'should create new project without path' do it 'should create new project without path and return 201' do
expect { post api("/projects/user/#{user.id}", admin), name: 'foo' }.to change {Project.count}.by(1) expect { post api("/projects/user/#{user.id}", admin), name: 'foo' }.to change {Project.count}.by(1)
end
it 'should not create new project without name' do
expect { post api("/projects/user/#{user.id}", admin) }.to_not change {Project.count}
end
it 'should respond with 201 on success' do
post api("/projects/user/#{user.id}", admin), name: 'foo'
response.status.should == 201 response.status.should == 201
end end
it 'should respond with 400 on failure' do it 'should respond with 400 on failure and not project' do
post api("/projects/user/#{user.id}", admin) expect { post api("/projects/user/#{user.id}", admin) }.
to_not change { Project.count }
response.status.should == 400 response.status.should == 400
json_response['message']['name'].should == [ json_response['message']['name'].should == [
'can\'t be blank', 'can\'t be blank',
...@@ -350,26 +320,28 @@ describe API::API, api: true do ...@@ -350,26 +320,28 @@ describe API::API, api: true do
describe 'permissions' do describe 'permissions' do
context 'personal project' do context 'personal project' do
before do it 'Sets project access and returns 200' do
project.team << [user, :master] project.team << [user, :master]
get api("/projects/#{project.id}", user) get api("/projects/#{project.id}", user)
end
it { response.status.should == 200 } expect(response.status).to eq(200)
it { json_response['permissions']['project_access']['access_level'].should == Gitlab::Access::MASTER } expect(json_response['permissions']['project_access']['access_level']).
it { json_response['permissions']['group_access'].should be_nil } to eq(Gitlab::Access::MASTER)
expect(json_response['permissions']['group_access']).to be_nil
end
end end
context 'group project' do context 'group project' do
before do it 'should set the owner and return 200' do
project2 = create(:project, group: create(:group)) project2 = create(:project, group: create(:group))
project2.group.add_owner(user) project2.group.add_owner(user)
get api("/projects/#{project2.id}", user) get api("/projects/#{project2.id}", user)
end
it { response.status.should == 200 } expect(response.status).to eq(200)
it { json_response['permissions']['project_access'].should be_nil } expect(json_response['permissions']['project_access']).to be_nil
it { json_response['permissions']['group_access']['access_level'].should == Gitlab::Access::OWNER } expect(json_response['permissions']['group_access']['access_level']).
to eq(Gitlab::Access::OWNER)
end
end end
end end
end end
...@@ -432,22 +404,9 @@ describe API::API, api: true do ...@@ -432,22 +404,9 @@ describe API::API, api: true do
json_response['title'].should == 'api test' json_response['title'].should == 'api test'
end end
it 'should return a 400 error if title is not given' do it 'should return a 400 error if invalid snippet is given' do
post api("/projects/#{project.id}/snippets", user), post api("/projects/#{project.id}/snippets", user)
file_name: 'sample.rb', code: 'test' expect(status).to eq(400)
response.status.should == 400
end
it 'should return a 400 error if file_name not given' do
post api("/projects/#{project.id}/snippets", user),
title: 'api test', code: 'test'
response.status.should == 400
end
it 'should return a 400 error if code not given' do
post api("/projects/#{project.id}/snippets", user),
title: 'api test', file_name: 'sample.rb'
response.status.should == 400
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment