diff --git a/lib/travis/api/v3/renderer/repository.rb b/lib/travis/api/v3/renderer/repository.rb index 2c806965..f807b299 100644 --- a/lib/travis/api/v3/renderer/repository.rb +++ b/lib/travis/api/v3/renderer/repository.rb @@ -3,10 +3,15 @@ require 'travis/api/v3/renderer/model_renderer' module Travis::API::V3 class Renderer::Repository < Renderer::ModelRenderer representation(:minimal, :id, :slug) - representation(:standard, :id, :name, :slug, :description, :github_language, :active, :private, :default_branch, :owner, :last_build) + representation(:standard, :id, :name, :slug, :description, :github_language, :active, :private, :owner, :last_build, :default_branch) def default_branch - model.default_branch || 'master'.freeze + branch_name = model.default_branch || 'master'.freeze + { + :@type => 'branch'.freeze, + :name => branch_name, + :last_build => model.last_build_on(branch_name) + } end def active diff --git a/spec/v3/services/repositories/for_current_user_spec.rb b/spec/v3/services/repositories/for_current_user_spec.rb index 8cffba25..4f61803b 100644 --- a/spec/v3/services/repositories/for_current_user_spec.rb +++ b/spec/v3/services/repositories/for_current_user_spec.rb @@ -25,7 +25,6 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do "github_language" => nil, "active" => true, "private" => true, - "default_branch" => "master", "owner" => { "@type" => "user", "id" => repo.owner_id, @@ -38,7 +37,19 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do "state" => "passed", "duration" => nil, "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"}}] + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}}}] }} end diff --git a/spec/v3/services/repository/find_spec.rb b/spec/v3/services/repository/find_spec.rb index f3033502..292a1d2c 100644 --- a/spec/v3/services/repository/find_spec.rb +++ b/spec/v3/services/repository/find_spec.rb @@ -16,7 +16,6 @@ describe Travis::API::V3::Services::Repository::Find do "github_language" => nil, "active" => true, "private" => false, - "default_branch" => "master", "owner" => { "@type" => "user", "id" => repo.owner_id, @@ -29,7 +28,19 @@ describe Travis::API::V3::Services::Repository::Find do "state" => "passed", "duration" => nil, "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"} + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end @@ -88,7 +99,6 @@ describe Travis::API::V3::Services::Repository::Find do "github_language" => nil, "active" => true, "private" => true, - "default_branch" => "master", "owner" => { "@type" => "user", "id" => repo.owner_id, @@ -101,7 +111,19 @@ describe Travis::API::V3::Services::Repository::Find do "state" => "passed", "duration" => nil, "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"} + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end @@ -145,7 +167,6 @@ describe Travis::API::V3::Services::Repository::Find do "github_language" => nil, "active" => true, "private" => true, - "default_branch" => "master", "owner" => { "@type" => "user", "id" => repo.owner_id, @@ -158,7 +179,19 @@ describe Travis::API::V3::Services::Repository::Find do "state" => "passed", "duration" => nil, "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"} + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end @@ -208,7 +241,6 @@ describe Travis::API::V3::Services::Repository::Find do "github_language" => nil, "active" => true, "private" => true, - "default_branch" => "master", "owner" => { "@type" => "user", "id" => repo.owner_id, @@ -221,7 +253,19 @@ describe Travis::API::V3::Services::Repository::Find do "state" => "passed", "duration" => nil, "started_at" => "2010-11-12T12:30:00Z", - "finished_at" => "2010-11-12T12:30:20Z"} + "finished_at" => "2010-11-12T12:30:20Z"}, + "default_branch" => { + "@type" => "branch", + "name" => "master", + "last_build" => { + "@type" => "build", + "@href" => "/v3/build/#{repo.last_build.id}", + "id" => repo.last_build.id, + "number" => "3", + "state" => "configured", + "duration" => nil, + "started_at" => "2010-11-12T13:00:00Z", + "finished_at" => nil}} }} end end \ No newline at end of file