Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
4f444556
Commit
4f444556
authored
Jan 19, 2016
by
Douwe Maan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into user-ldap-email
# Conflicts: # db/schema.rb
parents
98e1a5b6
c8d66514
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
94 additions
and
33 deletions
+94
-33
CHANGELOG
CHANGELOG
+1
-0
app/models/project.rb
app/models/project.rb
+2
-5
app/models/project_services/ci_service.rb
app/models/project_services/ci_service.rb
+3
-5
app/models/project_services/gitlab_issue_tracker_service.rb
app/models/project_services/gitlab_issue_tracker_service.rb
+1
-3
app/models/project_services/issue_tracker_service.rb
app/models/project_services/issue_tracker_service.rb
+2
-4
app/models/service.rb
app/models/service.rb
+8
-3
app/services/projects/create_service.rb
app/services/projects/create_service.rb
+1
-1
db/migrate/20160119111158_add_services_category.rb
db/migrate/20160119111158_add_services_category.rb
+39
-0
db/migrate/20160119112418_add_services_default.rb
db/migrate/20160119112418_add_services_default.rb
+20
-0
db/schema.rb
db/schema.rb
+16
-12
spec/services/projects/create_service_spec.rb
spec/services/projects/create_service_spec.rb
+1
-0
No files found.
CHANGELOG
View file @
4f444556
...
@@ -68,6 +68,7 @@ v 8.4.0 (unreleased)
...
@@ -68,6 +68,7 @@ v 8.4.0 (unreleased)
- Improve UX in builds artifacts browser
- Improve UX in builds artifacts browser
- Increase default size of `data` column in `events` table when using MySQL
- Increase default size of `data` column in `events` table when using MySQL
- Expose button to CI Lint tool on project builds page
- Expose button to CI Lint tool on project builds page
- Fix: Creator should be added as a master of the project on creation
v 8.3.4
v 8.3.4
- Use gitlab-workhorse 0.5.4 (fixes API routing bug)
- Use gitlab-workhorse 0.5.4 (fixes API routing bug)
...
...
app/models/project.rb
View file @
4f444556
...
@@ -468,12 +468,9 @@ class Project < ActiveRecord::Base
...
@@ -468,12 +468,9 @@ class Project < ActiveRecord::Base
!
external_issue_tracker
!
external_issue_tracker
end
end
def
external_issues_trackers
services
.
select
(
&
:issue_tracker?
).
reject
(
&
:default?
)
end
def
external_issue_tracker
def
external_issue_tracker
@external_issues_tracker
||=
external_issues_trackers
.
find
(
&
:activated?
)
@external_issue_tracker
||=
services
.
issue_trackers
.
active
.
without_defaults
.
first
end
end
def
can_have_issues_tracker_id?
def
can_have_issues_tracker_id?
...
...
app/models/project_services/ci_service.rb
View file @
4f444556
...
@@ -23,14 +23,12 @@
...
@@ -23,14 +23,12 @@
# List methods you need to implement to get your CI service
# List methods you need to implement to get your CI service
# working with GitLab Merge Requests
# working with GitLab Merge Requests
class
CiService
<
Service
class
CiService
<
Service
def
category
default_value_for
:category
,
'ci'
:ci
end
def
valid_token?
(
token
)
def
valid_token?
(
token
)
self
.
respond_to?
(
:token
)
&&
self
.
token
.
present?
&&
self
.
token
==
token
self
.
respond_to?
(
:token
)
&&
self
.
token
.
present?
&&
self
.
token
==
token
end
end
def
supported_events
def
supported_events
%w(push)
%w(push)
end
end
...
...
app/models/project_services/gitlab_issue_tracker_service.rb
View file @
4f444556
...
@@ -24,9 +24,7 @@ class GitlabIssueTrackerService < IssueTrackerService
...
@@ -24,9 +24,7 @@ class GitlabIssueTrackerService < IssueTrackerService
prop_accessor
:title
,
:description
,
:project_url
,
:issues_url
,
:new_issue_url
prop_accessor
:title
,
:description
,
:project_url
,
:issues_url
,
:new_issue_url
def
default?
default_value_for
:default
,
true
true
end
def
to_param
def
to_param
'gitlab'
'gitlab'
...
...
app/models/project_services/issue_tracker_service.rb
View file @
4f444556
...
@@ -23,12 +23,10 @@ class IssueTrackerService < Service
...
@@ -23,12 +23,10 @@ class IssueTrackerService < Service
validates
:project_url
,
:issues_url
,
:new_issue_url
,
presence:
true
,
if: :activated?
validates
:project_url
,
:issues_url
,
:new_issue_url
,
presence:
true
,
if: :activated?
def
category
default_value_for
:category
,
'issue_tracker'
:issue_tracker
end
def
default?
def
default?
false
default
end
end
def
issue_url
(
iid
)
def
issue_url
(
iid
)
...
...
app/models/service.rb
View file @
4f444556
...
@@ -43,6 +43,9 @@ class Service < ActiveRecord::Base
...
@@ -43,6 +43,9 @@ class Service < ActiveRecord::Base
validates
:project_id
,
presence:
true
,
unless:
Proc
.
new
{
|
service
|
service
.
template?
}
validates
:project_id
,
presence:
true
,
unless:
Proc
.
new
{
|
service
|
service
.
template?
}
scope
:visible
,
->
{
where
.
not
(
type:
[
'GitlabIssueTrackerService'
,
'GitlabCiService'
])
}
scope
:visible
,
->
{
where
.
not
(
type:
[
'GitlabIssueTrackerService'
,
'GitlabCiService'
])
}
scope
:issue_trackers
,
->
{
where
(
category:
'issue_tracker'
)
}
scope
:active
,
->
{
where
(
active:
true
)
}
scope
:without_defaults
,
->
{
where
(
default:
false
)
}
scope
:push_hooks
,
->
{
where
(
push_events:
true
,
active:
true
)
}
scope
:push_hooks
,
->
{
where
(
push_events:
true
,
active:
true
)
}
scope
:tag_push_hooks
,
->
{
where
(
tag_push_events:
true
,
active:
true
)
}
scope
:tag_push_hooks
,
->
{
where
(
tag_push_events:
true
,
active:
true
)
}
...
@@ -51,6 +54,8 @@ class Service < ActiveRecord::Base
...
@@ -51,6 +54,8 @@ class Service < ActiveRecord::Base
scope
:note_hooks
,
->
{
where
(
note_events:
true
,
active:
true
)
}
scope
:note_hooks
,
->
{
where
(
note_events:
true
,
active:
true
)
}
scope
:build_hooks
,
->
{
where
(
build_events:
true
,
active:
true
)
}
scope
:build_hooks
,
->
{
where
(
build_events:
true
,
active:
true
)
}
default_value_for
:category
,
'common'
def
activated?
def
activated?
active
active
end
end
...
@@ -60,7 +65,7 @@ class Service < ActiveRecord::Base
...
@@ -60,7 +65,7 @@ class Service < ActiveRecord::Base
end
end
def
category
def
category
:common
read_attribute
(
:category
).
to_sym
end
end
def
initialize_properties
def
initialize_properties
...
@@ -153,7 +158,7 @@ class Service < ActiveRecord::Base
...
@@ -153,7 +158,7 @@ class Service < ActiveRecord::Base
# Returns a hash of the properties that have been assigned a new value since last save,
# Returns a hash of the properties that have been assigned a new value since last save,
# indicating their original values (attr => original value).
# indicating their original values (attr => original value).
# ActiveRecord does not provide a mechanism to track changes in serialized keys,
# ActiveRecord does not provide a mechanism to track changes in serialized keys,
# so we need a specific implementation for service properties.
# so we need a specific implementation for service properties.
# This allows to track changes to properties set with the accessor methods,
# This allows to track changes to properties set with the accessor methods,
# but not direct manipulation of properties hash.
# but not direct manipulation of properties hash.
...
@@ -164,7 +169,7 @@ class Service < ActiveRecord::Base
...
@@ -164,7 +169,7 @@ class Service < ActiveRecord::Base
def
reset_updated_properties
def
reset_updated_properties
@updated_properties
=
nil
@updated_properties
=
nil
end
end
def
async_execute
(
data
)
def
async_execute
(
data
)
return
unless
supported_events
.
include?
(
data
[
:object_kind
])
return
unless
supported_events
.
include?
(
data
[
:object_kind
])
...
...
app/services/projects/create_service.rb
View file @
4f444556
...
@@ -95,7 +95,7 @@ module Projects
...
@@ -95,7 +95,7 @@ module Projects
system_hook_service
.
execute_hooks_for
(
@project
,
:create
)
system_hook_service
.
execute_hooks_for
(
@project
,
:create
)
unless
@project
.
group
unless
@project
.
group
@project
.
team
<<
[
current_user
,
:master
,
current_user
]
@project
.
team
<<
[
current_user
,
:master
]
end
end
@project
.
import_start
if
@project
.
import?
@project
.
import_start
if
@project
.
import?
...
...
db/migrate/20160119111158_add_services_category.rb
0 → 100644
View file @
4f444556
class
AddServicesCategory
<
ActiveRecord
::
Migration
def
up
add_column
:services
,
:category
,
:string
,
default:
'common'
,
null:
false
category
=
quote_column_name
(
'category'
)
type
=
quote_column_name
(
'type'
)
execute
<<-
EOF
UPDATE services
SET
#{
category
}
= 'issue_tracker'
WHERE
#{
type
}
IN (
'CustomIssueTrackerService',
'GitlabIssueTrackerService',
'IssueTrackerService',
'JiraService',
'RedmineService'
);
EOF
execute
<<-
EOF
UPDATE services
SET
#{
category
}
= 'ci'
WHERE
#{
type
}
IN (
'BambooService',
'BuildkiteService',
'CiService',
'DroneCiService',
'GitlabCiService',
'TeamcityService'
);
EOF
add_index
:services
,
:category
end
def
down
remove_column
:services
,
:category
end
end
db/migrate/20160119112418_add_services_default.rb
0 → 100644
View file @
4f444556
class
AddServicesDefault
<
ActiveRecord
::
Migration
def
up
add_column
:services
,
:default
,
:boolean
,
default:
false
default
=
quote_column_name
(
'default'
)
type
=
quote_column_name
(
'type'
)
execute
<<-
EOF
UPDATE services
SET
#{
default
}
= true
WHERE
#{
type
}
= 'GitlabIssueTrackerService'
EOF
add_index
:services
,
:default
end
def
down
remove_column
:services
,
:default
end
end
db/schema.rb
View file @
4f444556
...
@@ -725,20 +725,24 @@ ActiveRecord::Schema.define(version: 20160119145451) do
...
@@ -725,20 +725,24 @@ ActiveRecord::Schema.define(version: 20160119145451) do
t
.
string
"type"
t
.
string
"type"
t
.
string
"title"
t
.
string
"title"
t
.
integer
"project_id"
t
.
integer
"project_id"
t
.
datetime
"created_at"
t
.
datetime
"created_at"
,
null:
false
t
.
datetime
"updated_at"
t
.
datetime
"updated_at"
,
null:
false
t
.
boolean
"active"
,
default:
false
,
null:
false
t
.
boolean
"active"
,
null:
false
t
.
text
"properties"
t
.
text
"properties"
t
.
boolean
"template"
,
default:
false
t
.
boolean
"template"
,
default:
false
t
.
boolean
"push_events"
,
default:
true
t
.
boolean
"push_events"
,
default:
true
t
.
boolean
"issues_events"
,
default:
true
t
.
boolean
"issues_events"
,
default:
true
t
.
boolean
"merge_requests_events"
,
default:
true
t
.
boolean
"merge_requests_events"
,
default:
true
t
.
boolean
"tag_push_events"
,
default:
true
t
.
boolean
"tag_push_events"
,
default:
true
t
.
boolean
"note_events"
,
default:
true
,
null:
false
t
.
boolean
"note_events"
,
default:
true
,
null:
false
t
.
boolean
"build_events"
,
default:
false
,
null:
false
t
.
boolean
"build_events"
,
default:
false
,
null:
false
end
t
.
string
"category"
,
default:
"common"
,
null:
false
t
.
boolean
"default"
,
default:
false
end
add_index
"services"
,
[
"category"
],
name:
"index_services_on_category"
,
using: :btree
add_index
"services"
,
[
"created_at"
,
"id"
],
name:
"index_services_on_created_at_and_id"
,
using: :btree
add_index
"services"
,
[
"created_at"
,
"id"
],
name:
"index_services_on_created_at_and_id"
,
using: :btree
add_index
"services"
,
[
"default"
],
name:
"index_services_on_default"
,
using: :btree
add_index
"services"
,
[
"project_id"
],
name:
"index_services_on_project_id"
,
using: :btree
add_index
"services"
,
[
"project_id"
],
name:
"index_services_on_project_id"
,
using: :btree
add_index
"services"
,
[
"template"
],
name:
"index_services_on_template"
,
using: :btree
add_index
"services"
,
[
"template"
],
name:
"index_services_on_template"
,
using: :btree
...
...
spec/services/projects/create_service_spec.rb
View file @
4f444556
...
@@ -32,6 +32,7 @@ describe Projects::CreateService, services: true do
...
@@ -32,6 +32,7 @@ describe Projects::CreateService, services: true do
it
{
expect
(
@project
).
to
be_valid
}
it
{
expect
(
@project
).
to
be_valid
}
it
{
expect
(
@project
.
owner
).
to
eq
(
@user
)
}
it
{
expect
(
@project
.
owner
).
to
eq
(
@user
)
}
it
{
expect
(
@project
.
team
.
masters
).
to
include
(
@user
)
}
it
{
expect
(
@project
.
namespace
).
to
eq
(
@user
.
namespace
)
}
it
{
expect
(
@project
.
namespace
).
to
eq
(
@user
.
namespace
)
}
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment