fastlane 2.222.0 → 2.223.0

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.
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]