fastlane 2.222.0 → 2.223.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +94 -94
  3. data/deliver/lib/deliver/runner.rb +9 -0
  4. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +7 -3
  5. data/fastlane/lib/fastlane/actions/slack.rb +9 -2
  6. data/fastlane/lib/fastlane/actions/testfairy.rb +9 -1
  7. data/fastlane/lib/fastlane/fast_file.rb +5 -1
  8. data/fastlane/lib/fastlane/helper/git_helper.rb +4 -2
  9. data/fastlane/lib/fastlane/notification/slack.rb +3 -2
  10. data/fastlane/lib/fastlane/version.rb +1 -1
  11. data/fastlane/swift/Deliverfile.swift +1 -1
  12. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  13. data/fastlane/swift/Fastlane.swift +78 -18
  14. data/fastlane/swift/Gymfile.swift +1 -1
  15. data/fastlane/swift/GymfileProtocol.swift +5 -1
  16. data/fastlane/swift/Matchfile.swift +1 -1
  17. data/fastlane/swift/MatchfileProtocol.swift +5 -1
  18. data/fastlane/swift/Precheckfile.swift +1 -1
  19. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  20. data/fastlane/swift/Scanfile.swift +1 -1
  21. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  22. data/fastlane/swift/Screengrabfile.swift +1 -1
  23. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  24. data/fastlane/swift/Snapshotfile.swift +1 -1
  25. data/fastlane/swift/SnapshotfileProtocol.swift +5 -1
  26. data/fastlane/swift/formatting/Brewfile.lock.json +23 -18
  27. data/fastlane/swift/formatting/Rakefile +1 -0
  28. data/fastlane_core/lib/fastlane_core/project.rb +1 -0
  29. data/gym/lib/gym/options.rb +10 -1
  30. data/match/lib/match/change_password.rb +2 -1
  31. data/match/lib/match/encryption/encryption.rb +2 -2
  32. data/match/lib/match/encryption/openssl.rb +10 -5
  33. data/match/lib/match/importer.rb +2 -1
  34. data/match/lib/match/nuke.rb +2 -1
  35. data/match/lib/match/options.rb +5 -0
  36. data/match/lib/match/runner.rb +2 -1
  37. data/pilot/lib/pilot/build_manager.rb +9 -0
  38. data/scan/lib/scan/module.rb +1 -1
  39. data/scan/lib/scan/options.rb +10 -1
  40. data/snapshot/lib/snapshot/options.rb +9 -0
  41. metadata +20 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c2fcb0e5c62891ef4b01994e10d1c7880f0738f5f289d28633e983e657eede5
4
- data.tar.gz: 5e56397ff26ad27aee638525ed836aea56749477029a81fd263ac747da7fb760
3
+ metadata.gz: 32c31c8cdb5d22c28c22c8c5e87a18bb2b68312b36ea0b313e5da9cfb5ae599d
4
+ data.tar.gz: 6248f389a595ffe2b5769b9f948e24f4e350ec086e989205708c0cfa4155301f
5
5
  SHA512:
6
- metadata.gz: 38e276729f76d983d1e61807d6502cd8d09b9b357be64b04f2045870db69803923e928566fd2df06e9727d5d69e58063837c70c32a5f9d2c6ef9693d6aa195b0
7
- data.tar.gz: 23b475e6e9dede5602fceebd40be36fc3026a74e9b29d90f5942e4a084761bd6820f03d77733f8700a21957384ed52d560d089126a067c74475678eea42426e4
6
+ metadata.gz: db33d67f27de67d2d5a33a0de04eec412405e6d01f4f879bda83475ff75fd546a61ebe0240011ba9ff9ec992a45347bf5fd6e859da1123529d9cead052ef77eb
7
+ data.tar.gz: 2caa48a245eeaf5a7a85c2c35c7cb32b8c1871b37a106fb124c995e3951bd7b781d51c3bf269d85ca4e34e4cc85be5fae538e896a24c5d20a6d4ae63ce6ae237
data/README.md CHANGED
@@ -35,29 +35,29 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='manish-rathi'>
39
- <a href='https://github.com/crazymanish'>
40
- <img src='https://github.com/crazymanish.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
43
- </td>
44
38
  <td id='iulian-onofrei'>
45
39
  <a href='https://github.com/revolter'>
46
40
  <img src='https://github.com/revolter.png' width='140px;'>
47
41
  </a>
48
42
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
49
43
  </td>
50
- <td id='helmut-januschka'>
51
- <a href='https://github.com/hjanuschka'>
52
- <img src='https://github.com/hjanuschka.png' width='140px;'>
44
+ <td id='josh-holtz'>
45
+ <a href='https://github.com/joshdholtz'>
46
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
53
47
  </a>
54
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
55
49
  </td>
56
- <td id='stefan-natchev'>
57
- <a href='https://github.com/snatchev'>
58
- <img src='https://github.com/snatchev.png' width='140px;'>
50
+ <td id='kohki-miki'>
51
+ <a href='https://github.com/giginet'>
52
+ <img src='https://github.com/giginet.png' width='140px;'>
59
53
  </a>
60
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
55
+ </td>
56
+ <td id='łukasz-grabowski'>
57
+ <a href='https://github.com/lucgrabowski'>
58
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
59
+ </a>
60
+ <h4 align='center'>Łukasz Grabowski</h4>
61
61
  </td>
62
62
  <td id='manu-wallner'>
63
63
  <a href='https://github.com/milch'>
@@ -67,75 +67,113 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
67
67
  </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='maksym-grebenets'>
71
- <a href='https://github.com/mgrebenets'>
72
- <img src='https://github.com/mgrebenets.png' width='140px;'>
70
+ <td id='fumiya-nakamura'>
71
+ <a href='https://github.com/nafu'>
72
+ <img src='https://github.com/nafu.png' width='140px;'>
73
73
  </a>
74
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
75
75
  </td>
76
- <td id='jorge-revuelta-h'>
77
- <a href='https://github.com/minuscorp'>
78
- <img src='https://github.com/minuscorp.png' width='140px;'>
76
+ <td id='stefan-natchev'>
77
+ <a href='https://github.com/snatchev'>
78
+ <img src='https://github.com/snatchev.png' width='140px;'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
81
81
  </td>
82
- <td id='jérôme-lacoste'>
83
- <a href='https://github.com/lacostej'>
84
- <img src='https://github.com/lacostej.png' width='140px;'>
82
+ <td id='jan-piotrowski'>
83
+ <a href='https://github.com/janpio'>
84
+ <img src='https://github.com/janpio.png' width='140px;'>
85
85
  </a>
86
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
87
+ </td>
88
+ <td id='felix-krause'>
89
+ <a href='https://github.com/KrauseFx'>
90
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
93
+ </td>
94
+ <td id='olivier-halligon'>
95
+ <a href='https://github.com/AliSoftware'>
96
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
87
99
  </td>
100
+ </tr>
101
+ <tr>
88
102
  <td id='roger-oba'>
89
103
  <a href='https://github.com/rogerluan'>
90
104
  <img src='https://github.com/rogerluan.png' width='140px;'>
91
105
  </a>
92
106
  <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
93
107
  </td>
94
- <td id='jan-piotrowski'>
95
- <a href='https://github.com/janpio'>
96
- <img src='https://github.com/janpio.png' width='140px;'>
108
+ <td id='maksym-grebenets'>
109
+ <a href='https://github.com/mgrebenets'>
110
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
97
111
  </a>
98
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
113
+ </td>
114
+ <td id='luka-mirosevic'>
115
+ <a href='https://github.com/lmirosevic'>
116
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
117
+ </a>
118
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
99
119
  </td>
100
- </tr>
101
- <tr>
102
120
  <td id='max-ott'>
103
121
  <a href='https://github.com/max-ott'>
104
122
  <img src='https://github.com/max-ott.png' width='140px;'>
105
123
  </a>
106
124
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
107
125
  </td>
126
+ <td id='joshua-liebowitz'>
127
+ <a href='https://github.com/taquitos'>
128
+ <img src='https://github.com/taquitos.png' width='140px;'>
129
+ </a>
130
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
131
+ </td>
132
+ </tr>
133
+ <tr>
108
134
  <td id='matthew-ellis'>
109
135
  <a href='https://github.com/matthewellis'>
110
136
  <img src='https://github.com/matthewellis.png' width='140px;'>
111
137
  </a>
112
138
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
113
139
  </td>
140
+ <td id='aaron-brager'>
141
+ <a href='https://github.com/getaaron'>
142
+ <img src='https://github.com/getaaron.png' width='140px;'>
143
+ </a>
144
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
145
+ </td>
114
146
  <td id='danielle-tomlinson'>
115
147
  <a href='https://github.com/endocrimes'>
116
148
  <img src='https://github.com/endocrimes.png' width='140px;'>
117
149
  </a>
118
150
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
119
151
  </td>
120
- <td id='daniel-jankowski'>
121
- <a href='https://github.com/mollyIV'>
122
- <img src='https://github.com/mollyIV.png' width='140px;'>
152
+ <td id='andrew-mcburney'>
153
+ <a href='https://github.com/armcburney'>
154
+ <img src='https://github.com/armcburney.png' width='140px;'>
123
155
  </a>
124
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
125
157
  </td>
126
- <td id='kohki-miki'>
127
- <a href='https://github.com/giginet'>
128
- <img src='https://github.com/giginet.png' width='140px;'>
158
+ <td id='jorge-revuelta-h'>
159
+ <a href='https://github.com/minuscorp'>
160
+ <img src='https://github.com/minuscorp.png' width='140px;'>
129
161
  </a>
130
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
131
163
  </td>
132
164
  </tr>
133
165
  <tr>
134
- <td id='jimmy-dee'>
135
- <a href='https://github.com/jdee'>
136
- <img src='https://github.com/jdee.png' width='140px;'>
166
+ <td id='daniel-jankowski'>
167
+ <a href='https://github.com/mollyIV'>
168
+ <img src='https://github.com/mollyIV.png' width='140px;'>
137
169
  </a>
138
- <h4 align='center'>Jimmy Dee</h4>
170
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
171
+ </td>
172
+ <td id='helmut-januschka'>
173
+ <a href='https://github.com/hjanuschka'>
174
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
175
+ </a>
176
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
139
177
  </td>
140
178
  <td id='satoshi-namai'>
141
179
  <a href='https://github.com/ainame'>
@@ -143,63 +181,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
143
181
  </a>
144
182
  <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
145
183
  </td>
146
- <td id='luka-mirosevic'>
147
- <a href='https://github.com/lmirosevic'>
148
- <img src='https://github.com/lmirosevic.png' width='140px;'>
149
- </a>
150
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
151
- </td>
152
- <td id='joshua-liebowitz'>
153
- <a href='https://github.com/taquitos'>
154
- <img src='https://github.com/taquitos.png' width='140px;'>
155
- </a>
156
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
157
- </td>
158
- <td id='josh-holtz'>
159
- <a href='https://github.com/joshdholtz'>
160
- <img src='https://github.com/joshdholtz.png' width='140px;'>
161
- </a>
162
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
163
- </td>
164
- </tr>
165
- <tr>
166
- <td id='fumiya-nakamura'>
167
- <a href='https://github.com/nafu'>
168
- <img src='https://github.com/nafu.png' width='140px;'>
169
- </a>
170
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
171
- </td>
172
- <td id='łukasz-grabowski'>
173
- <a href='https://github.com/lucgrabowski'>
174
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
175
- </a>
176
- <h4 align='center'>Łukasz Grabowski</h4>
177
- </td>
178
- <td id='felix-krause'>
179
- <a href='https://github.com/KrauseFx'>
180
- <img src='https://github.com/KrauseFx.png' width='140px;'>
181
- </a>
182
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
183
- </td>
184
- <td id='aaron-brager'>
185
- <a href='https://github.com/getaaron'>
186
- <img src='https://github.com/getaaron.png' width='140px;'>
184
+ <td id='manish-rathi'>
185
+ <a href='https://github.com/crazymanish'>
186
+ <img src='https://github.com/crazymanish.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
189
189
  </td>
190
- <td id='olivier-halligon'>
191
- <a href='https://github.com/AliSoftware'>
192
- <img src='https://github.com/AliSoftware.png' width='140px;'>
190
+ <td id='jérôme-lacoste'>
191
+ <a href='https://github.com/lacostej'>
192
+ <img src='https://github.com/lacostej.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='andrew-mcburney'>
199
- <a href='https://github.com/armcburney'>
200
- <img src='https://github.com/armcburney.png' width='140px;'>
198
+ <td id='jimmy-dee'>
199
+ <a href='https://github.com/jdee'>
200
+ <img src='https://github.com/jdee.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
202
+ <h4 align='center'>Jimmy Dee</h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -264,6 +264,7 @@ module Deliver
264
264
  private
265
265
 
266
266
  # If App Store Connect API token, use token.
267
+ # If api_key is specified and it is an Individual API Key, don't use token but use username.
267
268
  # If itc_provider was explicitly specified, use it.
268
269
  # If there are multiple teams, infer the provider from the selected team name.
269
270
  # If there are fewer than two teams, don't infer the provider.
@@ -280,6 +281,14 @@ module Deliver
280
281
  api_key
281
282
  end
282
283
 
284
+ # Currently no kind of transporters accept an Individual API Key. Use username and app-specific password instead.
285
+ # See https://github.com/fastlane/fastlane/issues/22115
286
+ is_individual_key = !api_key.nil? && api_key[:issuer_id].nil?
287
+ if is_individual_key
288
+ api_key = nil
289
+ api_token = nil
290
+ end
291
+
283
292
  unless api_token.nil?
284
293
  api_token.refresh! if api_token.expired?
285
294
  return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, altool_compatible_command: true, api_key: api_key)
@@ -37,9 +37,9 @@ module Fastlane
37
37
 
38
38
  Dir.chdir(params[:path]) do
39
39
  if params[:commits_count]
40
- changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], merge_commit_filtering, params[:date_format], params[:ancestry_path])
40
+ changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], merge_commit_filtering, params[:date_format], params[:ancestry_path], params[:app_path])
41
41
  else
42
- changelog = Actions.git_log_between(params[:pretty], from, to, merge_commit_filtering, params[:date_format], params[:ancestry_path])
42
+ changelog = Actions.git_log_between(params[:pretty], from, to, merge_commit_filtering, params[:date_format], params[:ancestry_path], params[:app_path])
43
43
  end
44
44
 
45
45
  changelog = changelog.gsub("\n\n", "\n") if changelog # as there are duplicate newlines
@@ -147,7 +147,11 @@ module Fastlane
147
147
  verify_block: proc do |value|
148
148
  matches_option = GIT_MERGE_COMMIT_FILTERING_OPTIONS.any? { |opt| opt.to_s == value }
149
149
  UI.user_error!("Valid values for :merge_commit_filtering are #{GIT_MERGE_COMMIT_FILTERING_OPTIONS.map { |o| "'#{o}'" }.join(', ')}") unless matches_option
150
- end)
150
+ end),
151
+ FastlaneCore::ConfigItem.new(key: :app_path,
152
+ env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_APP_PATH',
153
+ description: "Scopes the changelog to a specific subdirectory of the repository",
154
+ optional: true)
151
155
  ]
152
156
  end
153
157
 
@@ -27,6 +27,7 @@ module Fastlane
27
27
  slack_attachment = self.class.generate_slack_attachments(options)
28
28
  link_names = options[:link_names]
29
29
  icon_url = options[:use_webhook_configured_username_and_icon] ? nil : options[:icon_url]
30
+ icon_emoji = options[:use_webhook_configured_username_and_icon] ? nil : options[:icon_emoji]
30
31
 
31
32
  post_message(
32
33
  channel: channel,
@@ -34,16 +35,18 @@ module Fastlane
34
35
  attachments: [slack_attachment],
35
36
  link_names: link_names,
36
37
  icon_url: icon_url,
38
+ icon_emoji: icon_emoji,
37
39
  fail_on_error: options[:fail_on_error]
38
40
  )
39
41
  end
40
42
 
41
- def post_message(channel:, username:, attachments:, link_names:, icon_url:, fail_on_error:)
43
+ def post_message(channel:, username:, attachments:, link_names:, icon_url:, icon_emoji:, fail_on_error:)
42
44
  @notifier.post_to_legacy_incoming_webhook(
43
45
  channel: channel,
44
46
  username: username,
45
47
  link_names: link_names,
46
48
  icon_url: icon_url,
49
+ icon_emoji: icon_emoji,
47
50
  attachments: attachments
48
51
  )
49
52
  UI.success('Successfully sent Slack notification')
@@ -211,9 +214,13 @@ module Fastlane
211
214
  optional: true),
212
215
  FastlaneCore::ConfigItem.new(key: :icon_url,
213
216
  env_name: "FL_SLACK_ICON_URL",
214
- description: "Overrides the webhook's image property if use_webhook_configured_username_and_icon is false",
217
+ description: "Specifies a URL of an image to use as the photo of the message. Overrides the webhook's image property if use_webhook_configured_username_and_icon is false",
215
218
  default_value: "https://fastlane.tools/assets/img/fastlane_icon.png",
216
219
  optional: true),
220
+ FastlaneCore::ConfigItem.new(key: :icon_emoji,
221
+ env_name: "FL_SLACK_ICON_EMOJI",
222
+ description: "Specifies an emoji (using colon shortcodes, eg. :white_check_mark:) to use as the photo of the message. Overrides the webhook's image property if use_webhook_configured_username_and_icon is false. This parameter takes precedence over icon_url",
223
+ optional: true),
217
224
  FastlaneCore::ConfigItem.new(key: :payload,
218
225
  env_name: "FL_SLACK_PAYLOAD",
219
226
  description: "Add additional information to this post. payload must be a hash containing any key with any value",
@@ -96,6 +96,8 @@ module Fastlane
96
96
  [key, options_to_client.call(value).join(',')]
97
97
  when :custom
98
98
  [key, value]
99
+ when :tags
100
+ [key, value.join(',')]
99
101
  else
100
102
  UI.user_error!("Unknown parameter: #{key}")
101
103
  end
@@ -241,7 +243,13 @@ module Fastlane
241
243
  env_name: "FL_TESTFAIRY_TIMEOUT",
242
244
  description: "Request timeout in seconds",
243
245
  type: Integer,
244
- optional: true)
246
+ optional: true),
247
+ FastlaneCore::ConfigItem.new(key: :tags,
248
+ optional: true,
249
+ env_name: "FL_TESTFAIRY_TAGS",
250
+ description: "Custom tags that can be used to organize your builds",
251
+ type: Array,
252
+ default_value: [])
245
253
  ]
246
254
  end
247
255
 
@@ -345,7 +345,11 @@ module Fastlane
345
345
  # Update the repo if it's eligible for caching but the version isn't specified
346
346
  UI.message("Fetching remote git branches and updating git repo...")
347
347
  Helper.with_env_values('GIT_TERMINAL_PROMPT' => '0') do
348
- Actions.sh("cd #{clone_folder.shellescape} && git fetch --all --quiet && git checkout #{checkout_param.shellescape} #{checkout_path} && git reset --hard && git rebase")
348
+ command = "cd #{clone_folder.shellescape} && git fetch --all --quiet && git checkout #{checkout_param.shellescape} #{checkout_path} && git reset --hard"
349
+ # Check if checked out "branch" is actually a branch or a tag
350
+ current_branch = Actions.sh("cd #{clone_folder.shellescape} && git rev-parse --abbrev-ref HEAD")
351
+ command << " && git rebase" unless current_branch.strip.eql?("HEAD")
352
+ Actions.sh(command)
349
353
  end
350
354
  else
351
355
  begin
@@ -9,13 +9,14 @@ module Fastlane
9
9
  end.freeze
10
10
  end
11
11
 
12
- def self.git_log_between(pretty_format, from, to, merge_commit_filtering, date_format = nil, ancestry_path)
12
+ def self.git_log_between(pretty_format, from, to, merge_commit_filtering, date_format = nil, ancestry_path, app_path)
13
13
  command = %w(git log)
14
14
  command << "--pretty=#{pretty_format}"
15
15
  command << "--date=#{date_format}" if date_format
16
16
  command << '--ancestry-path' if ancestry_path
17
17
  command << "#{from}...#{to}"
18
18
  command << git_log_merge_commit_filtering_option(merge_commit_filtering)
19
+ command << app_path if app_path
19
20
  # "*command" syntax expands "command" array into variable arguments, which
20
21
  # will then be individually shell-escaped by Actions.sh.
21
22
  Actions.sh(*command.compact, log: false).chomp
@@ -23,13 +24,14 @@ module Fastlane
23
24
  nil
24
25
  end
25
26
 
26
- def self.git_log_last_commits(pretty_format, commit_count, merge_commit_filtering, date_format = nil, ancestry_path)
27
+ def self.git_log_last_commits(pretty_format, commit_count, merge_commit_filtering, date_format = nil, ancestry_path, app_path)
27
28
  command = %w(git log)
28
29
  command << "--pretty=#{pretty_format}"
29
30
  command << "--date=#{date_format}" if date_format
30
31
  command << '--ancestry-path' if ancestry_path
31
32
  command << '-n' << commit_count.to_s
32
33
  command << git_log_merge_commit_filtering_option(merge_commit_filtering)
34
+ command << app_path if app_path
33
35
  Actions.sh(*command.compact, log: false).chomp
34
36
  rescue
35
37
  nil
@@ -8,16 +8,17 @@ module Fastlane
8
8
  end
9
9
  end
10
10
 
11
- # Overriding channel, icon_url and username is only supported in legacy incoming webhook.
11
+ # Overriding channel, icon_url, icon_emoji and username is only supported in legacy incoming webhook.
12
12
  # Also note that the use of attachments has been discouraged by Slack, in favor of Block Kit.
13
13
  # https://api.slack.com/legacy/custom-integrations/messaging/webhooks
14
- def post_to_legacy_incoming_webhook(channel:, username:, attachments:, link_names:, icon_url:)
14
+ def post_to_legacy_incoming_webhook(channel:, username:, attachments:, link_names:, icon_url:, icon_emoji:)
15
15
  @client.post(@webhook_url) do |request|
16
16
  request.headers['Content-Type'] = 'application/json'
17
17
  request.body = {
18
18
  channel: channel,
19
19
  username: username,
20
20
  icon_url: icon_url,
21
+ icon_emoji: icon_emoji,
21
22
  attachments: attachments,
22
23
  link_names: link_names
23
24
  }.to_json
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.222.0'.freeze
2
+ VERSION = '2.223.0'.freeze
3
3
  SUMMARY = "The easiest way to build and release mobile apps.".freeze
4
4
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
5
5
  MINIMUM_XCODE_RELEASE = "7.0".freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.222.0
20
+ // Generated with fastlane 2.223.0
@@ -272,4 +272,4 @@ public extension DeliverfileProtocol {
272
272
 
273
273
  // Please don't remove the lines below
274
274
  // They are used to detect outdated files
275
- // FastlaneRunnerAPIVersion [0.9.127]
275
+ // FastlaneRunnerAPIVersion [0.9.128]