Skip to content

Commit c28fd60

Browse files
Merge pull request #1213 from travis-ci/fix_executions_csv_am
Fix executions CSV export
2 parents 367a5db + 4168c9c commit c28fd60

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed

lib/travis/api/v3/models/executions.rb

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module Travis::API::V3
22
class Models::Execution
33
attr_reader :id, :os, :instance_size, :arch, :virtualization_type, :queue, :job_id, :repository_id, :owner_id,
44
:owner_type, :plan_id, :sender_id, :credits_consumed, :user_license_credits_consumed, :started_at,
5-
:finished_at, :created_at, :updated_at
5+
:finished_at, :created_at, :updated_at, :sender_login, :repo_slug, :repo_owner_name
66

77
def initialize(attributes = {})
88
@id = attributes.fetch('id')
@@ -23,6 +23,21 @@ def initialize(attributes = {})
2323
@finished_at = attributes.fetch('finished_at')
2424
@created_at = attributes.fetch('created_at')
2525
@updated_at = attributes.fetch('updated_at')
26+
@sender_login = nil
27+
@repo_slug = nil
28+
@repo_owner_name = nil
29+
end
30+
31+
def sender_login=(sender_login)
32+
@sender_login = sender_login
33+
end
34+
35+
def repo_slug=(repo_slug)
36+
@repo_slug = repo_slug
37+
end
38+
39+
def repo_owner_name=(repo_owner_name)
40+
@repo_owner_name = repo_owner_name
2641
end
2742
end
2843
end
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module Travis::API::V3
22
class Renderer::Execution < ModelRenderer
33
representation :minimal, :id, :os, :instance_size, :arch, :virtualization_type, :queue, :job_id,
4-
:repository_id, :owner_id, :owner_type, :plan_id, :sender_id, :credits_consumed,
5-
:user_license_credits_consumed, :started_at, :finished_at, :created_at, :updated_at
4+
:repository_id, :owner_id, :owner_type, :plan_id, :sender_id, :credits_consumed, :started_at,
5+
:user_license_credits_consumed, :finished_at, :created_at, :updated_at, :sender_login, :repo_slug, :repo_owner_name
66
representation :standard, *representations[:minimal]
77
end
88
end

lib/travis/api/v3/services/executions/for_owner.rb

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,23 @@ def run!
1212
raise NotFound unless owner
1313
raise InsufficientAccess unless access_control.visible?(owner)
1414

15-
result query(:executions).for_owner(owner, access_control.user.id, params['page'] || 0,
15+
results = query(:executions).for_owner(owner, access_control.user.id, params['page'] || 0,
1616
params['per_page'] || 0, params['from'], params['to'])
17+
result presented_results(results)
18+
end
19+
20+
def presented_results(results)
21+
senders = Travis::API::V3::Models::User.where(id: results.map(&:sender_id)).index_by(&:id)
22+
repositories = Travis::API::V3::Models::Repository.where(id: results.map(&:repository_id)).index_by(&:id)
23+
24+
results.map do |execution|
25+
execution.sender_login = senders[execution.sender_id]&.login || 'Unknown Sender'
26+
repo = repositories[execution.repository_id]
27+
execution.repo_slug = repo&.slug || 'Unknown Repository'
28+
execution.repo_owner_name = repo&.owner_name || 'Unknown Repository Owner'
29+
30+
execution
31+
end
1732
end
1833
end
1934
end

spec/v3/services/v2_subscription/executions_spec.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,10 @@
6969
'started_at' => Time.now.to_s,
7070
'finished_at' => (Time.now + 10.minutes).to_s,
7171
'created_at' => Time.now.to_s,
72-
'updated_at' => Time.now.to_s
72+
'updated_at' => Time.now.to_s,
73+
'repo_owner_name' => "svenfuchs",
74+
'repo_slug' => "svenfuchs/minimal",
75+
'sender_login' => "svenfuchs"
7376
}]
7477
})
7578
end

0 commit comments

Comments
 (0)