mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-23 19:46:12 +10:00
Merge branch '6-1-stable'
Conflicts: lib/tasks/gitlab/check.rake
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# == 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} ? ... "
|
||||
|
||||
Reference in New Issue
Block a user