Commit b6adabb4 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch '6-1-stable'

Conflicts:
	lib/tasks/gitlab/check.rake
parents 7bb03a53 82f3446f
# == Schema Information
#
# Table name: services
#
# id :integer not null, primary key
# type :string(255)
# title :string(255)
# token :string(255)
# project_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
# active :boolean default(FALSE), not null
#
class PivotaltrackerService < Service
include HTTParty
validates :token, presence: true, if: :activated?
def title
'PivotalTracker'
end
def description
'Project Management Software (Source Commits Endpoint)'
end
def to_param
'pivotaltracker'
end
def fields
[
{ type: 'text', name: 'token', placeholder: '' }
]
end
def execute(push)
url = 'https://www.pivotaltracker.com/services/v5/source_commits'
push[:commits].each do |commit|
message = {
'source_commit' => {
'commit_id' => commit[:id],
'author' => commit[:author][:name],
'url' => commit[:url],
'message' => commit[:message]
}
}
PivotaltrackerService.post(
url,
body: message.to_json,
headers: {
'Content-Type' => 'application/json',
'X-TrackerToken' => token
}
)
end
end
end
......@@ -46,6 +46,7 @@ class Project < ActiveRecord::Base
has_one :last_event, class_name: 'Event', order: 'events.created_at DESC', foreign_key: 'project_id'
has_one :gitlab_ci_service, dependent: :destroy
has_one :campfire_service, dependent: :destroy
has_one :pivotaltracker_service, dependent: :destroy
has_one :hipchat_service, dependent: :destroy
has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id"
has_one :forked_from_project, through: :forked_project_link
......@@ -220,7 +221,7 @@ class Project < ActiveRecord::Base
end
def available_services_names
%w(gitlab_ci campfire hipchat)
%w(gitlab_ci campfire hipchat pivotaltracker)
end
def gitlab_ci?
......
......@@ -18,3 +18,9 @@ Feature: Project Services
And I click hipchat service link
And I fill hipchat settings
Then I should see hipchat service settings saved
Scenario: Activate pivotaltracker service
When I visit project "Shop" services page
And I click pivotaltracker service link
And I fill pivotaltracker settings
Then I should see pivotaltracker service settings saved
......@@ -44,4 +44,18 @@ class ProjectServices < Spinach::FeatureSteps
find_field('Room').value.should == 'gitlab'
end
And 'I click pivotaltracker service link' do
click_link 'PivotalTracker'
end
And 'I fill pivotaltracker settings' do
check 'Active'
fill_in 'Token', with: 'verySecret'
click_button 'Save'
end
Then 'I should see pivotaltracker service settings saved' do
find_field('Token').value.should == 'verySecret'
end
end
......@@ -22,6 +22,7 @@ namespace :gitlab do
check_tmp_writable
check_init_script_exists
check_init_script_up_to_date
check_projects_have_namespace
check_satellites_exist
check_redis_version
check_git_version
......@@ -570,6 +571,32 @@ namespace :gitlab do
end
end
def check_projects_have_namespace
print "projects have namespace: ... "
unless Project.count > 0
puts "can't check, you have no projects".magenta
return
end
puts ""
Project.find_each(batch_size: 100) do |project|
print "#{project.name_with_namespace.yellow} ... "
if project.namespace
puts "yes".green
else
puts "no".red
try_fixing_it(
"Migrate global projects"
)
for_more_information(
"doc/update/5.4-to-6.0.md in section \"#global-projects\""
)
fix_and_rerun
end
end
end
# Helper methods
########################
......@@ -677,7 +704,7 @@ namespace :gitlab do
end
def check_gitlab_shell
required_version = Gitlab::VersionInfo.new(1, 7, 0)
required_version = Gitlab::VersionInfo.new(1, 7, 1)
current_version = Gitlab::VersionInfo.parse(gitlab_shell_version)
print "GitLab Shell version >= #{required_version} ? ... "
......
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