Merge pull request #251 from travis-ci/cd-requests-branch-name
V3 add branch_name for request
This commit is contained in:
commit
78f36320a7
|
@ -1,10 +1,20 @@
|
||||||
module Travis::API::V3
|
module Travis::API::V3
|
||||||
class Models::Request < Model
|
class Models::Request < Model
|
||||||
|
BRANCH_REF = %r{refs/heads/(.*?)$}
|
||||||
|
|
||||||
belongs_to :commit
|
belongs_to :commit
|
||||||
belongs_to :repository
|
belongs_to :repository
|
||||||
belongs_to :owner, polymorphic: true
|
belongs_to :owner, polymorphic: true
|
||||||
has_many :builds
|
has_many :builds
|
||||||
serialize :config
|
serialize :config
|
||||||
serialize :payload
|
serialize :payload
|
||||||
|
|
||||||
|
def branch_name
|
||||||
|
ref =~ BRANCH_REF and $1
|
||||||
|
end
|
||||||
|
|
||||||
|
def ref
|
||||||
|
payload['ref'] if payload
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,6 +3,6 @@ require 'travis/api/v3/renderer/model_renderer'
|
||||||
module Travis::API::V3
|
module Travis::API::V3
|
||||||
class Renderer::Request < Renderer::ModelRenderer
|
class Renderer::Request < Renderer::ModelRenderer
|
||||||
representation(:minimal, :id)
|
representation(:minimal, :id)
|
||||||
representation(:standard, :id, :repository, :commit, :owner, :created_at, :result, :message, :event_type)
|
representation(:standard, :id, :repository, :branch_name, :commit, :owner, :created_at, :result, :message, :event_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
60
spec/v3/services/requests/find_spec.rb
Normal file
60
spec/v3/services/requests/find_spec.rb
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Travis::API::V3::Services::Requests::Find do
|
||||||
|
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
|
||||||
|
let(:request) { repo.requests.first }
|
||||||
|
|
||||||
|
describe "fetching requests on a public repository" do
|
||||||
|
before { get("/v3/repo/#{repo.id}/requests") }
|
||||||
|
example { expect(last_response).to be_ok }
|
||||||
|
example { expect(JSON.load(body).to_s).to include(
|
||||||
|
"@type",
|
||||||
|
"requests",
|
||||||
|
"/v3/repo/#{repo.id}/requests",
|
||||||
|
"repository",
|
||||||
|
"commit",
|
||||||
|
"message",
|
||||||
|
"the commit message",
|
||||||
|
"branch_name",
|
||||||
|
"representation",
|
||||||
|
"@pagination",
|
||||||
|
"owner",
|
||||||
|
"created_at",
|
||||||
|
"result",
|
||||||
|
"sha",
|
||||||
|
"svenfuchs/minimal",
|
||||||
|
"event_type",
|
||||||
|
"push")
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "fetching requests on private repository, private API, authenticated as user with access" do
|
||||||
|
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
|
||||||
|
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
|
||||||
|
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, pull: true) }
|
||||||
|
before { repo.update_attribute(:private, true) }
|
||||||
|
before { get("/v3/repo/#{repo.id}/requests", {}, headers) }
|
||||||
|
after { repo.update_attribute(:private, false) }
|
||||||
|
example { expect(last_response).to be_ok }
|
||||||
|
example { expect(JSON.load(body).to_s).to include(
|
||||||
|
"@type",
|
||||||
|
"requests",
|
||||||
|
"/v3/repo/#{repo.id}/requests",
|
||||||
|
"repository",
|
||||||
|
"commit",
|
||||||
|
"message",
|
||||||
|
"the commit message",
|
||||||
|
"branch_name",
|
||||||
|
"representation",
|
||||||
|
"@pagination",
|
||||||
|
"owner",
|
||||||
|
"created_at",
|
||||||
|
"result",
|
||||||
|
"sha",
|
||||||
|
"svenfuchs/minimal",
|
||||||
|
"event_type",
|
||||||
|
"push")
|
||||||
|
}
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user