Merge branch 'master' into cd-coreless-migrations

This commit is contained in:
carlad 2016-03-08 16:00:47 +01:00
commit 41ef072a94
8 changed files with 35 additions and 6 deletions

View File

@ -93,7 +93,7 @@ GIT
GIT GIT
remote: git://github.com/travis-ci/travis-yaml.git remote: git://github.com/travis-ci/travis-yaml.git
revision: 9ebe328e7546c696dd374a8cf773d93276f98e4f revision: 032caed23af8ed1ed55e9204bb91316f3ada2f74
specs: specs:
travis-yaml (0.2.0) travis-yaml (0.2.0)

View File

@ -17,7 +17,7 @@ module Travis
def data def data
{ {
'build' => build_data(build), 'build' => build_data(build),
'commit' => commit_data(build.commit), 'commit' => commit_data(build.commit, build.repository),
'jobs' => options[:include_jobs] ? build.matrix.map { |job| job_data(job) } : [], 'jobs' => options[:include_jobs] ? build.matrix.map { |job| job_data(job) } : [],
'annotations' => options[:include_jobs] ? Annotations.new(annotations(build), @options).data["annotations"] : [], 'annotations' => options[:include_jobs] ? Annotations.new(annotations(build), @options).data["annotations"] : [],
} }
@ -44,11 +44,12 @@ module Travis
} }
end end
def commit_data(commit) def commit_data(commit, repository)
{ {
'id' => commit.id, 'id' => commit.id,
'sha' => commit.commit, 'sha' => commit.commit,
'branch' => commit.branch, 'branch' => commit.branch,
'branch_is_default' => branch_is_default(commit, repository),
'message' => commit.message, 'message' => commit.message,
'committed_at' => format_date(commit.committed_at), 'committed_at' => format_date(commit.committed_at),
'author_name' => commit.author_name, 'author_name' => commit.author_name,
@ -78,6 +79,10 @@ module Travis
} }
end end
def branch_is_default(commit, repository)
repository.default_branch == commit.branch
end
def annotations(build) def annotations(build)
build.matrix.map(&:annotations).flatten build.matrix.map(&:annotations).flatten
end end

View File

@ -15,7 +15,7 @@ module Travis
def data def data
{ {
'job' => job_data(job), 'job' => job_data(job),
'commit' => commit_data(job.commit), 'commit' => commit_data(job.commit, job.repository),
'annotations' => Annotations.new(job.annotations, @options).data["annotations"], 'annotations' => Annotations.new(job.annotations, @options).data["annotations"],
} }
end end
@ -42,11 +42,12 @@ module Travis
} }
end end
def commit_data(commit) def commit_data(commit, repository)
{ {
'id' => commit.id, 'id' => commit.id,
'sha' => commit.commit, 'sha' => commit.commit,
'branch' => commit.branch, 'branch' => commit.branch,
'branch_is_default' => branch_is_default(commit, repository),
'message' => commit.message, 'message' => commit.message,
'committed_at' => format_date(commit.committed_at), 'committed_at' => format_date(commit.committed_at),
'author_name' => commit.author_name, 'author_name' => commit.author_name,
@ -56,6 +57,10 @@ module Travis
'compare_url' => commit.compare_url, 'compare_url' => commit.compare_url,
} }
end end
def branch_is_default(commit, repository)
repository.default_branch == commit.branch
end
end end
end end
end end

View File

@ -35,6 +35,7 @@ module Travis
NotImplemented = ServerError .create('request not (yet) implemented', status: 501) NotImplemented = ServerError .create('request not (yet) implemented', status: 501)
RequestLimitReached = ClientError .create('request limit reached for resource', status: 429) RequestLimitReached = ClientError .create('request limit reached for resource', status: 429)
AlreadySyncing = ClientError .create('sync already in progress', status: 409) AlreadySyncing = ClientError .create('sync already in progress', status: 409)
MethodNotAllowed = ClientError .create('method not allowed', status: 405)
end end
end end
end end

View File

@ -15,8 +15,9 @@ module Travis::API::V3
return service_index(env) if env['PATH_INFO'.freeze] == ?/.freeze return service_index(env) if env['PATH_INFO'.freeze] == ?/.freeze
metrics = @metrics_processor.create metrics = @metrics_processor.create
access_control = AccessControl.new(env) access_control = AccessControl.new(env)
factory, params = routes.factory_for(env['REQUEST_METHOD'.freeze], env['PATH_INFO'.freeze])
env_params = params(env) env_params = params(env)
factory, params = routes.factory_for(env['REQUEST_METHOD'.freeze], env['PATH_INFO'.freeze])
raise NotFound unless factory raise NotFound unless factory
metrics.name_after(factory) metrics.name_after(factory)

View File

@ -29,6 +29,7 @@ describe Travis::Api::V2::Http::Build do
'id' => 1, 'id' => 1,
'sha' => '62aae5f70ceee39123ef', 'sha' => '62aae5f70ceee39123ef',
'branch' => 'master', 'branch' => 'master',
'branch_is_default' => true,
'message' => 'the commit message', 'message' => 'the commit message',
'compare_url' => 'https://github.com/svenfuchs/minimal/compare/master...develop', 'compare_url' => 'https://github.com/svenfuchs/minimal/compare/master...develop',
'committed_at' => json_format_time(Time.now.utc - 1.hour), 'committed_at' => json_format_time(Time.now.utc - 1.hour),

View File

@ -31,6 +31,7 @@ describe Travis::Api::V2::Http::Job do
'sha' => '62aae5f70ceee39123ef', 'sha' => '62aae5f70ceee39123ef',
'message' => 'the commit message', 'message' => 'the commit message',
'branch' => 'master', 'branch' => 'master',
'branch_is_default' => true,
'message' => 'the commit message', 'message' => 'the commit message',
'committed_at' => json_format_time(Time.now.utc - 1.hour), 'committed_at' => json_format_time(Time.now.utc - 1.hour),
'committer_name' => 'Sven Fuchs', 'committer_name' => 'Sven Fuchs',

View File

@ -0,0 +1,15 @@
require 'spec_helper'
describe Travis::API::V3::ServiceIndex do
let(:headers) {{ }}
let(:path) { "/v3/repo/1/enable" }
let(:json) { JSON.load(response.body) }
let(:response) { get(path, {}, headers) }
let(:resources) { json.fetch('resources') }
it "handles wrong HTTP method with 405 status" do
response.status.should == 405
end
end