Skip to content

Commit e3ffe60

Browse files
ShahzaibAwanvitalie
ShahzaibAwan
authored and
vitalie
committed
[BSFY-181] Add env vars changes to changelog for admin
1 parent af85d25 commit e3ffe60

File tree

5 files changed

+55
-20
lines changed

5 files changed

+55
-20
lines changed

lib/travis/api/app/endpoint/setting_endpoint.rb

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
class Travis::Api::App
44
class SettingsEndpoint < Endpoint
55
include ActiveSupport::Callbacks
6+
extend ActiveSupport::Concern
67

78
define_callbacks :after_save
8-
99
set_callback :after_save, :after, :save_audit
10+
1011
set(:prefix) { "/settings/" << name[/[^:]+$/].underscore }
1112

1213
class << self
@@ -24,7 +25,7 @@ def subclass(name)
2425
end
2526

2627
def create_settings_class(name)
27-
klass = Class.new(self) do
28+
Class.new(self) do
2829
define_method(:name) { name }
2930
before { authenticate_by_mode! }
3031
define_routes!
@@ -43,7 +44,6 @@ def define_routes!
4344
# Rails style methods for easy overriding
4445
def index
4546
respond_with(collection, type: name, version: :v2)
46-
4747
end
4848

4949
def show
@@ -54,8 +54,13 @@ def update
5454
disallow_migrating!(repo)
5555

5656
record.update(JSON.parse(request.body.read)[singular_name])
57+
5758
if record.valid?
58-
@changes = { :"env_vars" => { created: "name: #{record.name}, is_public: #{record.public}, branch: #{record.branch || 'all'} " } } if is_env_var?
59+
@changes = {
60+
env_vars: {
61+
created: "name: #{record.name}, is_public: #{record.public}, branch: #{record.branch || 'all'} "
62+
}
63+
} if is_env_var?
5964

6065
repo_settings.save
6166
run_callbacks :after_save if is_env_var?
@@ -71,8 +76,13 @@ def create
7176
disallow_migrating!(repo)
7277

7378
record = collection.create(JSON.parse(request.body.read)[singular_name])
79+
7480
if record.valid?
75-
@changes = { :"env_vars" => { created: "name: #{record.name}, is_public: #{record.public}, branch: #{record.branch || 'all'}" } } if is_env_var?
81+
@changes = {
82+
env_vars: {
83+
created: "name: #{record.name}, is_public: #{record.public}, branch: #{record.branch || 'all'}"
84+
}
85+
} if is_env_var?
7686

7787
repo_settings.save
7888
run_callbacks :after_save if is_env_var?
@@ -88,7 +98,11 @@ def destroy
8898
disallow_migrating!(repo)
8999

90100
record = collection.destroy(params[:id]) || record_not_found
91-
@changes = { :"env_vars" => { destroyed: "name: #{record.name}, is_public: #{record.public}, branch: #{record.branch || 'all'} " } } if is_env_var?
101+
@changes = {
102+
env_vars: {
103+
destroyed: "name: #{record.name}, is_public: #{record.public}, branch: #{record.branch || 'all'} "
104+
}
105+
} if is_env_var?
92106

93107
repo_settings.save
94108
run_callbacks :after_save if is_env_var?
@@ -112,8 +126,8 @@ def repo
112126
# Sinatra's method
113127
def repo_settings
114128
@settings ||= begin
115-
service(:find_repo_settings, id: params['repository_id'].to_i).run
116-
end || halt(404, error: "Couldn't find repository")
129+
service(:find_repo_settings, id: params['repository_id'].to_i).run
130+
end || halt(404, error: "Couldn't find repository")
117131
end
118132

119133
def record
@@ -136,7 +150,14 @@ def is_env_var?
136150

137151
def save_audit
138152
change_source = access_token.app_id == 2 ? 'admin-v2' : 'travis-api'
139-
Travis::API::V3::Models::Audit.create!(owner: current_user, change_source: change_source, source: @repo, source_changes: { settings: self.changes })
153+
Travis::API::V3::Models::Audit.create!(
154+
owner: current_user,
155+
change_source: change_source,
156+
source: @repo,
157+
source_changes: {
158+
settings: self.changes
159+
}
160+
)
140161
@changes = {}
141162
end
142163
end

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,24 @@
22

33
module Travis::API::V3
44
class Models::EnvVars < Travis::Settings::Collection
5-
include Models::JsonSync, ActiveSupport::Callbacks
5+
include Models::JsonSync
6+
include ActiveSupport::Callbacks
67
extend ActiveSupport::Concern
8+
79
model Models::EnvVar
8-
define_callbacks :after_save
910

11+
define_callbacks :after_save
1012
set_callback :after_save, :after, :save_audit
1113

1214
attr_accessor :user, :change_source
15+
1316
# See Models::JsonSync
1417
def to_h
1518
{ 'env_vars' => map(&:to_h).map(&:stringify_keys) }
1619
end
1720

1821
def create(attributes)
19-
@changes = { :"env_vars" => { created: "#{attributes.except("value")}" } }
22+
@changes = { env_vars: { created: "#{attributes.except("value")}" } }
2023
env_var = super(attributes).tap { sync! }
2124
run_callbacks :after_save
2225
env_var
@@ -29,7 +32,7 @@ def add(env_var)
2932

3033
def destroy(id)
3134
env_var = find(id)
32-
@changes = { :"env_vars" => { deleted: "#{env_var.attributes.delete("value")}" } }
35+
@changes = { env_vars: { deleted: "#{env_var.attributes.delete("value")}" } }
3336
deleted_env_var = super(id).tap { sync! }
3437
run_callbacks :after_save
3538
deleted_env_var
@@ -38,7 +41,7 @@ def destroy(id)
3841
def repository
3942
@repository ||= Models::Repository.find(additional_attributes[:repository_id])
4043
end
41-
44+
4245
def changes
4346
@changes
4447
end
@@ -47,7 +50,14 @@ def changes
4750

4851
def save_audit
4952
if self.change_source
50-
Travis::API::V3::Models::Audit.create!(owner: self.user, change_source: self.change_source, source: self.repository, source_changes: { settings: self.changes })
53+
Travis::API::V3::Models::Audit.create!(
54+
owner: self.user,
55+
change_source: self.change_source,
56+
source: self.repository,
57+
source_changes: {
58+
settings: self.changes
59+
}
60+
)
5161
@changes = {}
5262
end
5363
end

lib/travis/api/v3/queries/env_var.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@ def find(repository)
66
repository.env_vars.find(id)
77
end
88

9-
def update(env_var, from_admin)
9+
def update(env_var, from_admin = false)
1010
env_vars = env_var.repository.env_vars
1111
env_vars.user = env_var.repository.user_settings.user
1212
env_vars.change_source = 'travis-api' unless from_admin
1313
env_var.update(env_var_params)
14-
env_vars.add(env_var)
14+
env_vars.add(env_var)
15+
1516
env_var
1617
end
1718

18-
def delete(repository, from_admin)
19+
def delete(repository, from_admin = false)
1920
env_vars = repository.env_vars
2021
env_vars.user = repository.user_settings.user
2122
env_vars.change_source = 'travis-api' unless from_admin

lib/travis/api/v3/queries/env_vars.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@ def find(repository)
66
repository.env_vars
77
end
88

9-
def create(repository, from_admin)
9+
def create(repository, from_admin = false)
1010
env_vars = repository.env_vars
1111
env_vars.user = repository.user_settings.user
1212
env_vars.change_source = 'travis-api' unless from_admin
1313
env_var = env_vars.create(env_var_params)
14+
1415
unless env_var.valid?
1516
repository.env_vars.destroy(env_var.id)
1617
handle_errors(env_var)
1718
end
19+
1820
repository.save!
21+
1922
env_var
2023
end
2124

lib/travis/api/v3/queries/user_setting.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ def find(repository)
66
repository.user_settings.read(_name)
77
end
88

9-
def update(repository, user, from_admin)
9+
def update(repository, user, from_admin = false)
1010
user_settings = repository.user_settings
1111
user_settings.user = user
1212
user_settings.change_source = 'travis-api' unless from_admin

0 commit comments

Comments
 (0)