ci_toolkit 1.6.3 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/RELEASING.md +1 -1
- data/ci_toolkit.gemspec +1 -1
- data/lib/ci_toolkit/build_types.rb +18 -0
- data/lib/ci_toolkit/dvcs_pr.rb +4 -0
- data/lib/ci_toolkit/github_pr.rb +34 -10
- data/lib/ci_toolkit/gitlab_pr.rb +34 -10
- data/lib/ci_toolkit/pr_messenger.rb +9 -0
- data/lib/ci_toolkit/pr_messenger_text.rb +7 -0
- data/lib/ci_toolkit.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf8748ff0d666c907fac0f8bb328531e6536c49b19cd39fd99662d8aea067d8a
|
4
|
+
data.tar.gz: 79caaeae3543c703d77c8f239c3b7f37e0d86aae44f78a22c542e7694855a11a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88c8227691bc19dac3d5b6c7b79a785067780d1021488035b355dcbd9f02c70250196db31410c6ff245187ab7fa1376dd98f4f07117c8a2aa208eaf60c93a261
|
7
|
+
data.tar.gz: fb4df2fe415536e4a61872a93f507da43e0378b47af051050e35b4b82fc10413c153ad065e87c6f17a3d40b2463a722f2de7a472062115b347b325d497267951
|
data/Gemfile.lock
CHANGED
data/RELEASING.md
CHANGED
@@ -3,5 +3,5 @@
|
|
3
3
|
- Bump the version number in `Gemfile.lock` to the new version.
|
4
4
|
- Bump the version number in `ci_toolkit.gemspec` to the new version.
|
5
5
|
- `git commit -am "Version X.Y.Z."` (where X.Y.Z is the new version).
|
6
|
-
- `git tag -a
|
6
|
+
- `git tag -a vX.Y.X -m "Version X.Y.Z"` (where X.Y.Z is the new version).
|
7
7
|
- `git push && git push --tags`.
|
data/ci_toolkit.gemspec
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CiToolkit
|
4
|
+
# util class to get actual valid list of build types
|
5
|
+
class BuildTypes
|
6
|
+
# get actual valid list of build types
|
7
|
+
def get_build_types(build_types_arr, comments, labels)
|
8
|
+
types = []
|
9
|
+
build_types_arr.each do |type|
|
10
|
+
if comments.include?("#{type} build") || labels.include?("#{type} build") ||
|
11
|
+
comments.include?(type) || labels.include?(type)
|
12
|
+
types.push(type)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
types
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/ci_toolkit/dvcs_pr.rb
CHANGED
@@ -98,6 +98,10 @@ module CiToolkit
|
|
98
98
|
CiToolkit::DvcsPr.api_not_implemented(self)
|
99
99
|
end
|
100
100
|
|
101
|
+
def certificate_pinning_logic_modified?
|
102
|
+
CiToolkit::DvcsPr.api_not_implemented(self)
|
103
|
+
end
|
104
|
+
|
101
105
|
def get_status_description(_context)
|
102
106
|
CiToolkit::DvcsPr.api_not_implemented(self)
|
103
107
|
end
|
data/lib/ci_toolkit/github_pr.rb
CHANGED
@@ -18,6 +18,8 @@ module CiToolkit
|
|
18
18
|
@_client = client
|
19
19
|
@build_types = build_types
|
20
20
|
@bot = CiToolkit::GithubBot.new
|
21
|
+
@changes_detector = GithubSpecificFilesChangesDetector.new
|
22
|
+
@build_types_getter = CiToolkit::BuildTypes.new
|
21
23
|
end
|
22
24
|
|
23
25
|
def title
|
@@ -83,14 +85,7 @@ module CiToolkit
|
|
83
85
|
end
|
84
86
|
|
85
87
|
def build_types
|
86
|
-
|
87
|
-
@build_types.each do |type|
|
88
|
-
if comments.include?("#{type} build") || labels.include?("#{type} build") ||
|
89
|
-
comments.include?(type) || labels.include?(type)
|
90
|
-
types.push(type)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
types
|
88
|
+
@build_types_getter.get_build_types(@build_types, comments, labels)
|
94
89
|
end
|
95
90
|
|
96
91
|
def infrastructure_work?
|
@@ -106,8 +101,11 @@ module CiToolkit
|
|
106
101
|
end
|
107
102
|
|
108
103
|
def realm_module_modified?
|
109
|
-
|
110
|
-
|
104
|
+
@changes_detector.realm_module_modified(files)
|
105
|
+
end
|
106
|
+
|
107
|
+
def certificate_pinning_logic_modified?
|
108
|
+
@changes_detector.certificate_pinning_logic_modified(files)
|
111
109
|
end
|
112
110
|
|
113
111
|
def get_status_description(context)
|
@@ -126,4 +124,30 @@ module CiToolkit
|
|
126
124
|
@_client
|
127
125
|
end
|
128
126
|
end
|
127
|
+
|
128
|
+
# util class to verify modifications in app files that may have been broken in the past
|
129
|
+
class GithubSpecificFilesChangesDetector
|
130
|
+
def realm_module_modified(files)
|
131
|
+
modified_files = files.select { |file| file[:filename]&.start_with? "cache/" }
|
132
|
+
modified_files.length.positive?
|
133
|
+
end
|
134
|
+
|
135
|
+
def certificate_pinning_logic_modified(files)
|
136
|
+
modified_files = files.select do |file|
|
137
|
+
contains_substring(file[:filename],
|
138
|
+
%w[HttpClientFactory SecurePreferences CertificatePinningConfiguration SSLPinner
|
139
|
+
CertificateDateChecker])
|
140
|
+
end
|
141
|
+
modified_files.length.positive?
|
142
|
+
end
|
143
|
+
|
144
|
+
private
|
145
|
+
|
146
|
+
def contains_substring(input_string, substrings)
|
147
|
+
return false if input_string.nil?
|
148
|
+
|
149
|
+
regex = Regexp.union(substrings.map { |s| Regexp.new(s, Regexp::IGNORECASE) })
|
150
|
+
!!(input_string =~ regex)
|
151
|
+
end
|
152
|
+
end
|
129
153
|
end
|
data/lib/ci_toolkit/gitlab_pr.rb
CHANGED
@@ -20,6 +20,8 @@ module CiToolkit
|
|
20
20
|
@_client = bot.client
|
21
21
|
@build_types = build_types
|
22
22
|
@bot = bot
|
23
|
+
@changes_detector = GitlabSpecificFilesChangesDetector.new
|
24
|
+
@build_types_getter = CiToolkit::BuildTypes.new
|
23
25
|
end
|
24
26
|
|
25
27
|
def title
|
@@ -86,14 +88,7 @@ module CiToolkit
|
|
86
88
|
end
|
87
89
|
|
88
90
|
def build_types
|
89
|
-
|
90
|
-
@build_types.each do |type|
|
91
|
-
if comments.include?("#{type} build") || labels.include?("#{type} build") ||
|
92
|
-
comments.include?(type) || labels.include?(type)
|
93
|
-
types.push(type)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
types
|
91
|
+
@build_types_getter.get_build_types(@build_types, comments, labels)
|
97
92
|
end
|
98
93
|
|
99
94
|
def infrastructure_work?
|
@@ -109,8 +104,11 @@ module CiToolkit
|
|
109
104
|
end
|
110
105
|
|
111
106
|
def realm_module_modified?
|
112
|
-
|
113
|
-
|
107
|
+
@changes_detector.realm_module_modified(files)
|
108
|
+
end
|
109
|
+
|
110
|
+
def certificate_pinning_logic_modified?
|
111
|
+
@changes_detector.certificate_pinning_logic_modified(files)
|
114
112
|
end
|
115
113
|
|
116
114
|
def get_status_description(context)
|
@@ -127,4 +125,30 @@ module CiToolkit
|
|
127
125
|
@_client
|
128
126
|
end
|
129
127
|
end
|
128
|
+
|
129
|
+
# util class to verify modifications in app files that may have been broken in the past
|
130
|
+
class GitlabSpecificFilesChangesDetector
|
131
|
+
def realm_module_modified(files)
|
132
|
+
modified_files = files.select { |file| file&.old_path&.start_with? "cache/" }
|
133
|
+
modified_files.length.positive?
|
134
|
+
end
|
135
|
+
|
136
|
+
def certificate_pinning_logic_modified(files)
|
137
|
+
modified_files = files.select do |file|
|
138
|
+
contains_substring(file&.old_path,
|
139
|
+
%w[HttpClientFactory SecurePreferences CertificatePinningConfiguration SSLPinner
|
140
|
+
CertificateDateChecker])
|
141
|
+
end
|
142
|
+
modified_files.length.positive?
|
143
|
+
end
|
144
|
+
|
145
|
+
private
|
146
|
+
|
147
|
+
def contains_substring(input_string, substrings)
|
148
|
+
return false if input_string.nil?
|
149
|
+
|
150
|
+
regex = Regexp.union(substrings.map { |s| Regexp.new(s, Regexp::IGNORECASE) })
|
151
|
+
!!(input_string =~ regex)
|
152
|
+
end
|
153
|
+
end
|
130
154
|
end
|
@@ -55,6 +55,15 @@ module CiToolkit
|
|
55
55
|
delete(@messenger_text.realm_modified_warning_title)
|
56
56
|
end
|
57
57
|
|
58
|
+
def send_certificate_pinning_modified_android_warning
|
59
|
+
delete_certificate_pinning_modified_android_warning
|
60
|
+
send(@messenger_text.certificate_pinning_logic_modified_android_title)
|
61
|
+
end
|
62
|
+
|
63
|
+
def delete_certificate_pinning_modified_android_warning
|
64
|
+
delete(@messenger_text.certificate_pinning_logic_modified_android_title)
|
65
|
+
end
|
66
|
+
|
58
67
|
def send_big_pr_warning
|
59
68
|
delete_big_pr_warning
|
60
69
|
send(@messenger_text.big_pr_warning_title)
|
@@ -45,6 +45,13 @@ module CiToolkit
|
|
45
45
|
warning_with_message("Realm module modified. Did you remember to add migrations?")
|
46
46
|
end
|
47
47
|
|
48
|
+
def certificate_pinning_logic_modified_android_title
|
49
|
+
warning_with_message("Detected modifications in Certificate pinning related files " \
|
50
|
+
"(HttpClientFactory / SecurePreferences / CertificatePinningConfiguration / " \
|
51
|
+
"SSLPinner / CertificateDateChecker). If you are doing temporary changes " \
|
52
|
+
"to pinning, do not merge this MR until you revert them!")
|
53
|
+
end
|
54
|
+
|
48
55
|
def big_pr_warning_title
|
49
56
|
warning_with_message("Big PR")
|
50
57
|
end
|
data/lib/ci_toolkit.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ci_toolkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gero Keller
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -238,6 +238,7 @@ files:
|
|
238
238
|
- lib/ci_toolkit/bitrise_env.rb
|
239
239
|
- lib/ci_toolkit/build.rb
|
240
240
|
- lib/ci_toolkit/build_status.rb
|
241
|
+
- lib/ci_toolkit/build_types.rb
|
241
242
|
- lib/ci_toolkit/duplicate_files_finder.rb
|
242
243
|
- lib/ci_toolkit/dvcs_pr.rb
|
243
244
|
- lib/ci_toolkit/dvcs_pr_factory.rb
|
@@ -277,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
278
|
- !ruby/object:Gem::Version
|
278
279
|
version: '0'
|
279
280
|
requirements: []
|
280
|
-
rubygems_version: 3.4.
|
281
|
+
rubygems_version: 3.4.19
|
281
282
|
signing_key:
|
282
283
|
specification_version: 4
|
283
284
|
summary: Set of CI utilities
|