fastlane 2.240.1 → 2.241.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.
- checksums.yaml +4 -4
- data/README.md +57 -177
- data/bin/fastlane +4 -2
- data/credentials_manager/README.md +1 -1
- data/deliver/lib/deliver/app_screenshot.rb +0 -4
- data/deliver/lib/deliver/commands_generator.rb +1 -1
- data/deliver/lib/deliver/download_screenshots.rb +8 -1
- data/deliver/lib/deliver/sync_screenshots.rb +27 -28
- data/deliver/lib/deliver/upload_app_clip_default_experience_header_images.rb +3 -3
- data/deliver/lib/deliver/upload_metadata.rb +12 -16
- data/deliver/lib/deliver/upload_screenshots.rb +12 -14
- data/docs/README.md +25 -0
- data/fastlane/lib/assets/TeamTable.md.erb +28 -0
- data/fastlane/lib/fastlane/actions/appaloosa.rb +2 -1
- data/fastlane/lib/fastlane/actions/appium.rb +1 -1
- data/fastlane/lib/fastlane/actions/apteligent.rb +8 -1
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +1 -1
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +3 -0
- data/fastlane/lib/fastlane/actions/danger.rb +5 -5
- data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -2
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +1 -2
- data/fastlane/lib/fastlane/actions/docs/get_certificates.md +0 -2
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +1 -3
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +13 -3
- data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +2 -2
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +1 -0
- data/fastlane/lib/fastlane/actions/github_api.rb +1 -2
- data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +16 -6
- data/fastlane/lib/fastlane/actions/lcov.rb +9 -2
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +16 -4
- data/fastlane/lib/fastlane/actions/notification.rb +3 -2
- data/fastlane/lib/fastlane/actions/oclint.rb +8 -8
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +9 -4
- data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
- data/fastlane/lib/fastlane/actions/say.rb +2 -4
- data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -3
- data/fastlane/lib/fastlane/actions/sonar.rb +16 -16
- data/fastlane/lib/fastlane/actions/sourcedocs.rb +8 -8
- data/fastlane/lib/fastlane/actions/splunkmint.rb +8 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -2
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +5 -2
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -4
- data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +3 -1
- data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +20 -19
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -6
- data/fastlane/lib/fastlane/actions/zip.rb +2 -1
- data/fastlane/lib/fastlane/auto_complete.rb +1 -1
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +14 -0
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +23 -0
- data/fastlane/lib/fastlane/environment_printer.rb +12 -25
- data/fastlane/lib/fastlane/fast_file.rb +2 -1
- data/fastlane/lib/fastlane/fastlane_require.rb +5 -1
- data/fastlane/lib/fastlane/helper/sh_helper.rb +16 -6
- data/fastlane/lib/fastlane/new_action.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +36 -4
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
- data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +1 -1
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +3 -7
- data/fastlane/lib/fastlane/swift_lane_manager.rb +22 -4
- data/fastlane/lib/fastlane/version.rb +3 -2
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +55 -9
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +190 -20
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +10 -3
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +8 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane/swift/formatting/Rakefile +1 -0
- data/fastlane/swift/main.swift +4 -1
- data/fastlane_core/README.md +1 -1
- data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +1 -17
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +11 -8
- data/fastlane_core/lib/fastlane_core/device_manager.rb +2 -2
- data/fastlane_core/lib/fastlane_core/helper.rb +34 -5
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +0 -14
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +24 -27
- data/fastlane_core/lib/fastlane_core/languages.rb +0 -1
- data/fastlane_core/lib/fastlane_core/print_table.rb +5 -2
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +10 -19
- data/fastlane_core/lib/fastlane_core/secrets.rb +77 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +3 -3
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +2 -1
- data/fastlane_core/lib/fastlane_core.rb +1 -0
- data/frameit/lib/frameit/device.rb +1 -1
- data/frameit/lib/frameit/frame_downloader.rb +2 -0
- data/frameit/lib/frameit/runner.rb +3 -2
- data/frameit/lib/frameit/screenshot.rb +0 -1
- data/gym/lib/gym/generators/build_command_generator.rb +4 -4
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +3 -3
- data/gym/lib/gym/runner.rb +1 -1
- data/internal/README.md +1 -1
- data/match/lib/match/generator.rb +1 -0
- data/match/lib/match/options.rb +13 -5
- data/match/lib/match/storage/git_storage.rb +43 -7
- data/match/lib/match/storage/gitlab/secure_file.rb +2 -1
- data/pem/lib/pem/module.rb +0 -4
- data/precheck/lib/precheck/rule_processor.rb +1 -0
- data/produce/lib/produce/developer_center.rb +49 -2
- data/produce/lib/produce/itunes_connect.rb +1 -1
- data/produce/lib/produce/module.rb +21 -0
- data/produce/lib/produce/options.rb +17 -0
- data/produce/lib/produce/service.rb +3 -5
- data/produce/lib/produce.rb +0 -1
- data/scan/lib/scan/options.rb +7 -0
- data/scan/lib/scan/runner.rb +1 -1
- data/scan/lib/scan/test_command_generator.rb +12 -9
- data/scan/lib/scan/test_result_parser.rb +1 -0
- data/scan/lib/scan/xcpretty_reporter_options_generator.rb +2 -2
- data/screengrab/lib/screengrab/page.html.erb +12 -7
- data/screengrab/lib/screengrab/reports_generator.rb +1 -1
- data/sigh/lib/assets/resign.sh +17 -0
- data/sigh/lib/sigh/local_manage.rb +1 -1
- data/sigh/lib/sigh/options.rb +5 -0
- data/sigh/lib/sigh/resign.rb +3 -3
- data/sigh/lib/sigh/runner.rb +6 -1
- data/snapshot/lib/snapshot/page.html.erb +17 -12
- data/snapshot/lib/snapshot/reports_generator.rb +1 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +1 -1
- data/snapshot/lib/snapshot.rb +0 -2
- data/spaceship/README.md +2 -3
- data/spaceship/lib/spaceship/base.rb +3 -1
- data/spaceship/lib/spaceship/client.rb +65 -47
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +13 -2
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +7 -5
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +25 -0
- data/spaceship/lib/spaceship/du/upload_file.rb +1 -1
- data/spaceship/lib/spaceship/errors.rb +7 -1
- data/spaceship/lib/spaceship/globals.rb +2 -2
- data/spaceship/lib/spaceship/portal/merchant.rb +127 -2
- data/spaceship/lib/spaceship/portal/portal_client.rb +58 -0
- data/spaceship/lib/spaceship/portal/ui/select_team.rb +0 -2
- data/spaceship/lib/spaceship/portal/website_push.rb +8 -2
- data/spaceship/lib/spaceship/test_flight/client.rb +0 -22
- data/spaceship/lib/spaceship/test_flight.rb +0 -1
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +11 -0
- data/supply/lib/supply/options.rb +1 -0
- data/supply/lib/supply.rb +0 -1
- metadata +54 -36
- data/produce/lib/produce/available_default_languages.rb +0 -62
- data/snapshot/lib/snapshot/screenshot_flatten.rb +0 -20
- data/snapshot/lib/snapshot/screenshot_rotate.rb +0 -36
- data/spaceship/lib/spaceship/test_flight/app_test_info.rb +0 -40
- data/supply/lib/supply/apk_listing.rb +0 -14
- /data/fastlane/lib/assets/{custom_action_template.rb → custom_action_template.rb.template} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 696cd16eb3defc78305bdebccbc787402841c1105199cfd437d15f019e617024
|
|
4
|
+
data.tar.gz: ab772bcd92b21da5da03746f3e7bdab86e60f5ff6771696e2beb5cbd5c673b4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fb16eaacf91b754e72424d9780054f13b49040aadb738c86746dba6fa75ff3e275af98621aeda98794b47a1a3ad982d91071b6c9b1642da7e243a0d187a86739
|
|
7
|
+
data.tar.gz: e116e4c1c5f59831e65a20e676f9f8735807ae86929efb06bc5d97d97e11182361ea2d783c9da2ced56276f6d2183bfbfd863e5fcb7e7add57f5f1961543e84f
|
data/README.md
CHANGED
|
@@ -9,17 +9,12 @@
|
|
|
9
9
|
[](https://rubygems.org/gems/fastlane)
|
|
10
10
|
[](https://formulae.brew.sh/formula/fastlane)
|
|
11
11
|
[](https://circleci.com/gh/fastlane/fastlane)
|
|
12
|
-
[](https://github.com/fastlane/fastlane/blob/master/CONTRIBUTING.md)
|
|
12
|
+
[](https://github.com/fastlane/fastlane/blob/master/docs/CONTRIBUTING.md)
|
|
13
13
|
[](https://opencollective.com/fastlane)
|
|
14
|
+
[](https://scorecard.dev/viewer/?uri=github.com/fastlane/fastlane)
|
|
14
15
|
|
|
15
16
|
_fastlane_ is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.
|
|
16
17
|
|
|
17
|
-
<hr />
|
|
18
|
-
<h2 align="center">
|
|
19
|
-
✨ All fastlane docs were moved to <a href="https://docs.fastlane.tools/">docs.fastlane.tools</a> ✨
|
|
20
|
-
</h2>
|
|
21
|
-
<hr />
|
|
22
|
-
|
|
23
18
|
## Need Help?
|
|
24
19
|
|
|
25
20
|
Before submitting a new GitHub issue, please make sure to
|
|
@@ -29,212 +24,102 @@ Before submitting a new GitHub issue, please make sure to
|
|
|
29
24
|
|
|
30
25
|
If the above doesn't help, please [submit an issue](https://github.com/fastlane/fastlane/issues) on GitHub and provide information about your setup, in particular the output of the `fastlane env` command.
|
|
31
26
|
|
|
32
|
-
**Note**: If you want to report a regression in _fastlane_ (something that has worked before, but broke with a new release), please mark your issue title as such using `[Regression] Your title here`. This enables us to quickly detect and fix regressions.
|
|
33
|
-
|
|
34
27
|
## _fastlane_ team
|
|
35
28
|
|
|
36
29
|
<!-- This table is regenerated and resorted on each release -->
|
|
30
|
+
<!-- team:start -->
|
|
37
31
|
<table id='team'>
|
|
38
32
|
<tr>
|
|
39
|
-
<td id='
|
|
40
|
-
<a href='https://github.com/
|
|
41
|
-
<img src='https://github.com/
|
|
33
|
+
<td id='jan-piotrowski'>
|
|
34
|
+
<a href='https://github.com/janpio'>
|
|
35
|
+
<img src='https://github.com/janpio.png?size=200' width='140'>
|
|
42
36
|
</a>
|
|
43
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
37
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
44
38
|
</td>
|
|
45
|
-
<td id='
|
|
46
|
-
<a href='https://github.com/
|
|
47
|
-
<img src='https://github.com/
|
|
39
|
+
<td id='jérôme-lacoste'>
|
|
40
|
+
<a href='https://github.com/lacostej'>
|
|
41
|
+
<img src='https://github.com/lacostej.png?size=200' width='140'>
|
|
48
42
|
</a>
|
|
49
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
43
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
50
44
|
</td>
|
|
51
|
-
<td id='
|
|
52
|
-
<a href='https://github.com/
|
|
53
|
-
<img src='https://github.com/
|
|
45
|
+
<td id='joshua-liebowitz'>
|
|
46
|
+
<a href='https://github.com/taquitos'>
|
|
47
|
+
<img src='https://github.com/taquitos.png?size=200' width='140'>
|
|
54
48
|
</a>
|
|
55
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
49
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
56
50
|
</td>
|
|
57
|
-
<td id='
|
|
58
|
-
<a href='https://github.com/
|
|
59
|
-
<img src='https://github.com/
|
|
51
|
+
<td id='josh-holtz'>
|
|
52
|
+
<a href='https://github.com/joshdholtz'>
|
|
53
|
+
<img src='https://github.com/joshdholtz.png?size=200' width='140'>
|
|
60
54
|
</a>
|
|
61
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
55
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
62
56
|
</td>
|
|
63
|
-
<td id='
|
|
64
|
-
<a href='https://github.com/
|
|
65
|
-
<img src='https://github.com/
|
|
57
|
+
<td id='stefan-natchev'>
|
|
58
|
+
<a href='https://github.com/snatchev'>
|
|
59
|
+
<img src='https://github.com/snatchev.png?size=200' width='140'>
|
|
66
60
|
</a>
|
|
67
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
61
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
68
62
|
</td>
|
|
69
63
|
</tr>
|
|
70
64
|
<tr>
|
|
71
|
-
<td id='maksym-grebenets'>
|
|
72
|
-
<a href='https://github.com/mgrebenets'>
|
|
73
|
-
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
74
|
-
</a>
|
|
75
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
76
|
-
</td>
|
|
77
65
|
<td id='olivier-halligon'>
|
|
78
66
|
<a href='https://github.com/AliSoftware'>
|
|
79
|
-
<img src='https://github.com/AliSoftware.png' width='
|
|
67
|
+
<img src='https://github.com/AliSoftware.png?size=200' width='140'>
|
|
80
68
|
</a>
|
|
81
69
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
82
70
|
</td>
|
|
83
|
-
<td id='connor-tumbleson'>
|
|
84
|
-
<a href='https://github.com/ibotpeaches'>
|
|
85
|
-
<img src='https://github.com/ibotpeaches.png' width='140px;'>
|
|
86
|
-
</a>
|
|
87
|
-
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
88
|
-
</td>
|
|
89
|
-
<td id='satoshi-namai'>
|
|
90
|
-
<a href='https://github.com/ainame'>
|
|
91
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
|
92
|
-
</a>
|
|
93
|
-
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
94
|
-
</td>
|
|
95
|
-
<td id='jimmy-dee'>
|
|
96
|
-
<a href='https://github.com/jdee'>
|
|
97
|
-
<img src='https://github.com/jdee.png' width='140px;'>
|
|
98
|
-
</a>
|
|
99
|
-
<h4 align='center'>Jimmy Dee</h4>
|
|
100
|
-
</td>
|
|
101
|
-
</tr>
|
|
102
|
-
<tr>
|
|
103
|
-
<td id='helmut-januschka'>
|
|
104
|
-
<a href='https://github.com/hjanuschka'>
|
|
105
|
-
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
106
|
-
</a>
|
|
107
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
108
|
-
</td>
|
|
109
|
-
<td id='łukasz-grabowski'>
|
|
110
|
-
<a href='https://github.com/lucgrabowski'>
|
|
111
|
-
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
112
|
-
</a>
|
|
113
|
-
<h4 align='center'>Łukasz Grabowski</h4>
|
|
114
|
-
</td>
|
|
115
|
-
<td id='jorge-revuelta-h'>
|
|
116
|
-
<a href='https://github.com/minuscorp'>
|
|
117
|
-
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
118
|
-
</a>
|
|
119
|
-
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
120
|
-
</td>
|
|
121
71
|
<td id='felix-krause'>
|
|
122
72
|
<a href='https://github.com/KrauseFx'>
|
|
123
|
-
<img src='https://github.com/KrauseFx.png' width='
|
|
73
|
+
<img src='https://github.com/KrauseFx.png?size=200' width='140'>
|
|
124
74
|
</a>
|
|
125
75
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
126
76
|
</td>
|
|
127
|
-
<td id='
|
|
128
|
-
<a href='https://github.com/
|
|
129
|
-
<img src='https://github.com/
|
|
130
|
-
</a>
|
|
131
|
-
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
132
|
-
</td>
|
|
133
|
-
</tr>
|
|
134
|
-
<tr>
|
|
135
|
-
<td id='matthew-ellis'>
|
|
136
|
-
<a href='https://github.com/matthewellis'>
|
|
137
|
-
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
138
|
-
</a>
|
|
139
|
-
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
140
|
-
</td>
|
|
141
|
-
<td id='aaron-brager'>
|
|
142
|
-
<a href='https://github.com/getaaron'>
|
|
143
|
-
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
77
|
+
<td id='connor-tumbleson'>
|
|
78
|
+
<a href='https://github.com/ibotpeaches'>
|
|
79
|
+
<img src='https://github.com/ibotpeaches.png?size=200' width='140'>
|
|
144
80
|
</a>
|
|
145
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
81
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
146
82
|
</td>
|
|
147
83
|
<td id='roger-oba'>
|
|
148
84
|
<a href='https://github.com/rogerluan'>
|
|
149
|
-
<img src='https://github.com/rogerluan.png' width='
|
|
85
|
+
<img src='https://github.com/rogerluan.png?size=200' width='140'>
|
|
150
86
|
</a>
|
|
151
87
|
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
152
88
|
</td>
|
|
153
|
-
<td id='manish-rathi'>
|
|
154
|
-
<a href='https://github.com/crazymanish'>
|
|
155
|
-
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
156
|
-
</a>
|
|
157
|
-
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
158
|
-
</td>
|
|
159
|
-
<td id='jérôme-lacoste'>
|
|
160
|
-
<a href='https://github.com/lacostej'>
|
|
161
|
-
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
162
|
-
</a>
|
|
163
|
-
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
164
|
-
</td>
|
|
165
|
-
</tr>
|
|
166
|
-
<tr>
|
|
167
|
-
<td id='josh-holtz'>
|
|
168
|
-
<a href='https://github.com/joshdholtz'>
|
|
169
|
-
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
170
|
-
</a>
|
|
171
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
172
|
-
</td>
|
|
173
|
-
<td id='manu-wallner'>
|
|
174
|
-
<a href='https://github.com/milch'>
|
|
175
|
-
<img src='https://github.com/milch.png' width='140px;'>
|
|
176
|
-
</a>
|
|
177
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
178
|
-
</td>
|
|
179
|
-
<td id='andrew-mcburney'>
|
|
180
|
-
<a href='https://github.com/armcburney'>
|
|
181
|
-
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
182
|
-
</a>
|
|
183
|
-
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
184
|
-
</td>
|
|
185
|
-
<td id='joshua-liebowitz'>
|
|
186
|
-
<a href='https://github.com/taquitos'>
|
|
187
|
-
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
188
|
-
</a>
|
|
189
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
190
|
-
</td>
|
|
191
|
-
<td id='kohki-miki'>
|
|
192
|
-
<a href='https://github.com/giginet'>
|
|
193
|
-
<img src='https://github.com/giginet.png' width='140px;'>
|
|
194
|
-
</a>
|
|
195
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
196
|
-
</td>
|
|
197
89
|
</tr>
|
|
198
|
-
<tr>
|
|
199
|
-
<td id='jan-piotrowski'>
|
|
200
|
-
<a href='https://github.com/janpio'>
|
|
201
|
-
<img src='https://github.com/janpio.png' width='140px;'>
|
|
202
|
-
</a>
|
|
203
|
-
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
204
|
-
</td>
|
|
205
|
-
<td id='iulian-onofrei'>
|
|
206
|
-
<a href='https://github.com/revolter'>
|
|
207
|
-
<img src='https://github.com/revolter.png' width='140px;'>
|
|
208
|
-
</a>
|
|
209
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
210
|
-
</td>
|
|
211
90
|
</table>
|
|
212
91
|
|
|
92
|
+
### _fastlane_ alumni
|
|
93
|
+
|
|
94
|
+
_fastlane_ wouldn't be what it is today without the countless hours these former team members have dedicated to the project ❤️
|
|
95
|
+
|
|
96
|
+
<p id='alumni'>
|
|
97
|
+
<a href='https://github.com/endocrimes'>Danielle Tomlinson</a>,
|
|
98
|
+
<a href='https://github.com/crazymanish'>Manish Rathi</a>,
|
|
99
|
+
<a href='https://github.com/ainame'>Satoshi Namai</a>,
|
|
100
|
+
<a href='https://github.com/giginet'>Kohki Miki</a>,
|
|
101
|
+
<a href='https://github.com/lmirosevic'>Luka Mirosevic</a>,
|
|
102
|
+
<a href='https://github.com/minuscorp'>Jorge Revuelta H</a>,
|
|
103
|
+
<a href='https://github.com/mollyIV'>Daniel Jankowski</a>,
|
|
104
|
+
<a href='https://github.com/armcburney'>Andrew McBurney</a>,
|
|
105
|
+
<a href='https://github.com/max-ott'>Max Ott</a>,
|
|
106
|
+
<a href='https://github.com/lucgrabowski'>Łukasz Grabowski</a>,
|
|
107
|
+
<a href='https://github.com/matthewellis'>Matthew Ellis</a>,
|
|
108
|
+
<a href='https://github.com/jdee'>Jimmy Dee</a>,
|
|
109
|
+
<a href='https://github.com/nafu'>Fumiya Nakamura</a>,
|
|
110
|
+
<a href='https://github.com/hjanuschka'>Helmut Januschka</a>,
|
|
111
|
+
<a href='https://github.com/milch'>Manu Wallner</a>,
|
|
112
|
+
<a href='https://github.com/getaaron'>Aaron Brager</a>,
|
|
113
|
+
<a href='https://github.com/mgrebenets'>Maksym Grebenets</a>,
|
|
114
|
+
<a href='https://github.com/revolter'>Iulian Onofrei</a>
|
|
115
|
+
</p>
|
|
116
|
+
<!-- team:end -->
|
|
117
|
+
|
|
213
118
|
Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
|
|
214
119
|
|
|
215
120
|
## Contribute to _fastlane_
|
|
216
121
|
|
|
217
|
-
Check out [CONTRIBUTING.md](CONTRIBUTING.md) for more information on how to help with _fastlane_.
|
|
218
|
-
|
|
219
|
-
## Code of Conduct
|
|
220
|
-
|
|
221
|
-
Help us keep _fastlane_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
|
222
|
-
|
|
223
|
-
## Metrics
|
|
224
|
-
|
|
225
|
-
_fastlane_ tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include:
|
|
226
|
-
|
|
227
|
-
* The number of _fastlane_ runs
|
|
228
|
-
* A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of _fastlane_
|
|
229
|
-
* How _fastlane_ is executed (Swift vs Ruby)
|
|
230
|
-
* The _fastlane_ version
|
|
231
|
-
* How _fastlane_ was installed (Homebrew, gem, bundler, etc)
|
|
232
|
-
* The Ruby version
|
|
233
|
-
* The Operating System in use
|
|
234
|
-
* The Xcode version
|
|
235
|
-
* Whether it was run in non-interactively or interactively
|
|
236
|
-
|
|
237
|
-
You can easily opt-out of metrics collection by adding `opt_out_usage` at the top of your `Fastfile` or by setting the environment variable `FASTLANE_OPT_OUT_USAGE`. [Check out the metrics code on GitHub](https://github.com/fastlane/fastlane/tree/master/fastlane_core/lib/fastlane_core/analytics)
|
|
122
|
+
Check out [CONTRIBUTING.md](docs/CONTRIBUTING.md) or [CODE_OF_CONDUCT.md](./docs/CODE_OF_CONDUCT.md) for more information on how to help with _fastlane_.
|
|
238
123
|
|
|
239
124
|
## License
|
|
240
125
|
|
|
@@ -242,8 +127,3 @@ This project is licensed under the terms of the MIT license. See the [LICENSE](L
|
|
|
242
127
|
|
|
243
128
|
> This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|
|
244
129
|
|
|
245
|
-
<hr />
|
|
246
|
-
<h2 align="center">
|
|
247
|
-
✨ All fastlane docs were moved to <a href="https://docs.fastlane.tools/">docs.fastlane.tools</a> ✨
|
|
248
|
-
</h2>
|
|
249
|
-
<hr />
|
data/bin/fastlane
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
require "fastlane/version"
|
|
4
|
+
|
|
5
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Fastlane::MINIMUM_RUBY)
|
|
6
|
+
abort("fastlane requires Ruby #{Fastlane::MINIMUM_RUBY} or higher")
|
|
5
7
|
end
|
|
6
8
|
|
|
7
9
|
def self.windows?
|
|
@@ -55,7 +55,7 @@ puts data.password
|
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
# Code of Conduct
|
|
58
|
-
Help us keep _fastlane_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
|
58
|
+
Help us keep _fastlane_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/docs/CODE_OF_CONDUCT.md).
|
|
59
59
|
|
|
60
60
|
# License
|
|
61
61
|
|
|
@@ -220,9 +220,7 @@ module Deliver
|
|
|
220
220
|
end
|
|
221
221
|
|
|
222
222
|
def is_messages?
|
|
223
|
-
# rubocop:disable Require/MissingRequireStatement
|
|
224
223
|
return DisplayType::ALL_IMESSAGE.include?(self.display_type)
|
|
225
|
-
# rubocop:enable Require/MissingRequireStatement
|
|
226
224
|
end
|
|
227
225
|
|
|
228
226
|
def self.calculate_display_type(path)
|
|
@@ -247,7 +245,6 @@ module Deliver
|
|
|
247
245
|
is_2gen = path_lower.include?("app_ipad_pro_129") ||
|
|
248
246
|
(path_lower.include?("12.9") && path_lower.include?("2nd generation")) # e.g. iPad Pro (12.9-inch) (2nd generation)
|
|
249
247
|
|
|
250
|
-
# rubocop:disable Require/MissingRequireStatement
|
|
251
248
|
if is_2gen
|
|
252
249
|
return is_imessage ? DisplayType::IMESSAGE_APP_IPAD_PRO_129 : DisplayType::APP_IPAD_PRO_129
|
|
253
250
|
else
|
|
@@ -256,7 +253,6 @@ module Deliver
|
|
|
256
253
|
# Apple TV vs Vision Pro conflict
|
|
257
254
|
when [3840, 2160]
|
|
258
255
|
return path_lower.include?("vision") ? DisplayType::APP_APPLE_VISION_PRO : DisplayType::APP_APPLE_TV
|
|
259
|
-
# rubocop:enable Require/MissingRequireStatement
|
|
260
256
|
else
|
|
261
257
|
matching_display_type
|
|
262
258
|
end
|
|
@@ -133,7 +133,7 @@ module Deliver
|
|
|
133
133
|
Deliver::Runner.new(options)
|
|
134
134
|
html_path = Deliver::GenerateSummary.new.run(options)
|
|
135
135
|
UI.success("Successfully generated HTML report at '#{html_path}'")
|
|
136
|
-
system("open
|
|
136
|
+
system("open", html_path) unless options[:force]
|
|
137
137
|
end
|
|
138
138
|
end
|
|
139
139
|
|
|
@@ -68,7 +68,14 @@ module Deliver
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
path = File.join(containing_folder, file_name)
|
|
71
|
-
|
|
71
|
+
# URI.open falls back to Kernel#open for anything that isn't a URL, which runs "|command" strings
|
|
72
|
+
uri = begin
|
|
73
|
+
URI.parse(url)
|
|
74
|
+
rescue URI::InvalidURIError
|
|
75
|
+
nil
|
|
76
|
+
end
|
|
77
|
+
UI.user_error!("Unexpected screenshot URL '#{url}'") unless uri.kind_of?(URI::HTTP)
|
|
78
|
+
File.binwrite(path, uri.read)
|
|
72
79
|
end
|
|
73
80
|
end
|
|
74
81
|
end
|
|
@@ -71,11 +71,11 @@ module Deliver
|
|
|
71
71
|
def enable_localizations(locales)
|
|
72
72
|
localizations = fetch_localizations
|
|
73
73
|
locales_to_enable = locales - localizations.map(&:locale)
|
|
74
|
-
Helper.
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
Helper.with_loading_indicator("Activating localizations for #{locales_to_enable.join(', ')}...") do
|
|
75
|
+
locales_to_enable.each do |locale|
|
|
76
|
+
version.create_app_store_version_localization(attributes: { locale: locale })
|
|
77
|
+
end
|
|
77
78
|
end
|
|
78
|
-
Helper.hide_loading_indicator
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
def replace_screenshots(iterator, screenshots, retries = 3)
|
|
@@ -127,35 +127,34 @@ module Deliver
|
|
|
127
127
|
|
|
128
128
|
def wait_for_complete(iterator)
|
|
129
129
|
retry_count = 0
|
|
130
|
-
Helper.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
130
|
+
Helper.with_loading_indicator("Waiting for all the screenshots processed...") do
|
|
131
|
+
loop do
|
|
132
|
+
failing_screenshots = []
|
|
133
|
+
state_counts = iterator.each_app_screenshot.map { |_, _, app_screenshot| app_screenshot }.each_with_object({}) do |app_screenshot, hash|
|
|
134
|
+
state = app_screenshot.asset_delivery_state['state']
|
|
135
|
+
hash[state] ||= 0
|
|
136
|
+
hash[state] += 1
|
|
137
|
+
failing_screenshots << app_screenshot if app_screenshot.error?
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
result = UploadResult.new(asset_delivery_state_counts: state_counts, failing_screenshots: failing_screenshots)
|
|
141
|
+
return result unless result.processing?
|
|
142
|
+
|
|
143
|
+
# sleep with exponential backoff
|
|
144
|
+
interval = 5 + (2**retry_count)
|
|
145
|
+
UI.message("There are still incomplete screenshots. Will check the states again in #{interval} secs - #{state_counts}")
|
|
146
|
+
sleep(interval)
|
|
147
|
+
retry_count += 1
|
|
138
148
|
end
|
|
139
|
-
|
|
140
|
-
result = UploadResult.new(asset_delivery_state_counts: state_counts, failing_screenshots: failing_screenshots)
|
|
141
|
-
return result unless result.processing?
|
|
142
|
-
|
|
143
|
-
# sleep with exponential backoff
|
|
144
|
-
interval = 5 + (2**retry_count)
|
|
145
|
-
UI.message("There are still incomplete screenshots. Will check the states again in #{interval} secs - #{state_counts}")
|
|
146
|
-
sleep(interval)
|
|
147
|
-
retry_count += 1
|
|
148
149
|
end
|
|
149
|
-
ensure
|
|
150
|
-
Helper.hide_loading_indicator
|
|
151
150
|
end
|
|
152
151
|
|
|
153
152
|
def sort_screenshots(iterator)
|
|
154
|
-
Helper.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
153
|
+
Helper.with_loading_indicator("Sorting screenshots uploaded...") do
|
|
154
|
+
sort_worker = create_sort_worker
|
|
155
|
+
sort_worker.batch_enqueue(iterator.each_app_screenshot_set.to_a.map { |_, set| set })
|
|
156
|
+
sort_worker.start
|
|
157
|
+
end
|
|
159
158
|
end
|
|
160
159
|
|
|
161
160
|
private
|
|
@@ -93,9 +93,9 @@ module Deliver
|
|
|
93
93
|
|
|
94
94
|
UI.verbose('Uploading jobs are completed')
|
|
95
95
|
|
|
96
|
-
Helper.
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
Helper.with_loading_indicator("Waiting for all the app clip header images to finish being processed...") do
|
|
97
|
+
wait_for_complete(app_clip_default_experience.id)
|
|
98
|
+
end
|
|
99
99
|
|
|
100
100
|
UI.message("Successfully uploaded all app clip header images")
|
|
101
101
|
end
|
|
@@ -535,16 +535,14 @@ module Deliver
|
|
|
535
535
|
if locales_to_enable.count > 0
|
|
536
536
|
lng_text = "language"
|
|
537
537
|
lng_text += "s" if locales_to_enable.count != 1
|
|
538
|
-
Helper.
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
538
|
+
Helper.with_loading_indicator("Activating info #{lng_text} #{locales_to_enable.join(', ')}...") do
|
|
539
|
+
locales_to_enable.each do |locale|
|
|
540
|
+
app_info.create_app_info_localization(attributes: {
|
|
541
|
+
locale: locale
|
|
542
|
+
})
|
|
543
|
+
end
|
|
544
544
|
end
|
|
545
545
|
|
|
546
|
-
Helper.hide_loading_indicator
|
|
547
|
-
|
|
548
546
|
# Refresh version localizations
|
|
549
547
|
localizations = app_info.get_app_info_localizations
|
|
550
548
|
end
|
|
@@ -570,16 +568,14 @@ module Deliver
|
|
|
570
568
|
if locales_to_enable.count > 0
|
|
571
569
|
lng_text = "language"
|
|
572
570
|
lng_text += "s" if locales_to_enable.count != 1
|
|
573
|
-
Helper.
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
571
|
+
Helper.with_loading_indicator("Activating version #{lng_text} #{locales_to_enable.join(', ')}...") do
|
|
572
|
+
locales_to_enable.each do |locale|
|
|
573
|
+
version.create_app_store_version_localization(attributes: {
|
|
574
|
+
locale: locale
|
|
575
|
+
})
|
|
576
|
+
end
|
|
579
577
|
end
|
|
580
578
|
|
|
581
|
-
Helper.hide_loading_indicator
|
|
582
|
-
|
|
583
579
|
# Refresh version localizations
|
|
584
580
|
localizations = version.get_app_store_version_localizations
|
|
585
581
|
end
|
|
@@ -41,25 +41,23 @@ module Deliver
|
|
|
41
41
|
if locales_to_enable.count > 0
|
|
42
42
|
lng_text = "language"
|
|
43
43
|
lng_text += "s" if locales_to_enable.count != 1
|
|
44
|
-
Helper.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
Helper.with_loading_indicator("Activating #{lng_text} #{locales_to_enable.join(', ')}...") do
|
|
45
|
+
locales_to_enable.each do |locale|
|
|
46
|
+
version.create_app_store_version_localization(attributes: {
|
|
47
|
+
locale: locale
|
|
48
|
+
})
|
|
49
|
+
end
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
Helper.hide_loading_indicator
|
|
53
|
-
|
|
54
52
|
# Refresh version localizations
|
|
55
53
|
localizations = version.get_app_store_version_localizations
|
|
56
54
|
end
|
|
57
55
|
|
|
58
56
|
upload_screenshots(localizations, screenshots_per_language, options[:screenshot_processing_timeout])
|
|
59
57
|
|
|
60
|
-
Helper.
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
Helper.with_loading_indicator("Sorting screenshots uploaded...") do
|
|
59
|
+
sort_screenshots(localizations)
|
|
60
|
+
end
|
|
63
61
|
|
|
64
62
|
UI.success("Successfully uploaded screenshots to App Store Connect")
|
|
65
63
|
end
|
|
@@ -159,9 +157,9 @@ module Deliver
|
|
|
159
157
|
|
|
160
158
|
UI.verbose('Uploading jobs are completed')
|
|
161
159
|
|
|
162
|
-
Helper.
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
states = Helper.with_loading_indicator("Waiting for all the screenshots to finish being processed...") do
|
|
161
|
+
wait_for_complete(iterator, timeout_seconds)
|
|
162
|
+
end
|
|
165
163
|
retry_upload_screenshots_if_needed(iterator, states, total_number_of_screenshots, tries, timeout_seconds, localizations, screenshots_per_language)
|
|
166
164
|
|
|
167
165
|
UI.message("Successfully uploaded all screenshots")
|
data/docs/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<h3 align="center">
|
|
2
|
+
<a href="https://github.com/fastlane/fastlane/blob/master/fastlane/assets/fastlane_text.png">
|
|
3
|
+
<img src="https://github.com/fastlane/fastlane/blob/master/fastlane/assets/fastlane_text.png?raw=true" alt="fastlane Logo" width="500">
|
|
4
|
+
</a>
|
|
5
|
+
</h3>
|
|
6
|
+
|
|
7
|
+
# _fastlane_ Documentation
|
|
8
|
+
|
|
9
|
+
## Contributing
|
|
10
|
+
|
|
11
|
+
- [Contributing to _fastlane_](CONTRIBUTING.md)
|
|
12
|
+
- [Designing _fastlane_ code](Design.md)
|
|
13
|
+
- [Tooling and Debugging](ToolsAndDebugging.md)
|
|
14
|
+
|
|
15
|
+
## Testing
|
|
16
|
+
|
|
17
|
+
- [Testing _fastlane_](Testing.md)
|
|
18
|
+
- [When a spec passes alone and fails in the split](ParallelTesting.md)
|
|
19
|
+
|
|
20
|
+
## Project
|
|
21
|
+
|
|
22
|
+
- [_fastlane_'s Philosophy](VISION.md)
|
|
23
|
+
- [Maintaining _fastlane_](Maintaining.md)
|
|
24
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
25
|
+
- [Security Policy](SECURITY.md)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<table id='team'>
|
|
2
|
+
<%- team.each_slice(5) do |row| -%>
|
|
3
|
+
<tr>
|
|
4
|
+
<%- row.each do |github_user, user| -%>
|
|
5
|
+
<td id='<%= ERB::Util.h(user['name'].downcase.tr(' ', '-')) %>'>
|
|
6
|
+
<a href='https://github.com/<%= github_user %>'>
|
|
7
|
+
<img src='https://github.com/<%= github_user %>.png?size=200' width='140'>
|
|
8
|
+
</a>
|
|
9
|
+
<%- if user['twitter'] -%>
|
|
10
|
+
<h4 align='center'><a href='https://twitter.com/<%= user['twitter'] %>'><%= ERB::Util.h(user['name']) %></a></h4>
|
|
11
|
+
<%- else -%>
|
|
12
|
+
<h4 align='center'><%= ERB::Util.h(user['name']) %></h4>
|
|
13
|
+
<%- end -%>
|
|
14
|
+
</td>
|
|
15
|
+
<%- end -%>
|
|
16
|
+
</tr>
|
|
17
|
+
<%- end -%>
|
|
18
|
+
</table>
|
|
19
|
+
<%- unless alumni.empty? -%>
|
|
20
|
+
|
|
21
|
+
### _fastlane_ alumni
|
|
22
|
+
|
|
23
|
+
_fastlane_ wouldn't be what it is today without the countless hours these former team members have dedicated to the project ❤️
|
|
24
|
+
|
|
25
|
+
<p id='alumni'>
|
|
26
|
+
<%= alumni.map { |github_user, user| "<a href='https://github.com/#{github_user}'>#{ERB::Util.h(user['name'])}</a>" }.join(",\n") %>
|
|
27
|
+
</p>
|
|
28
|
+
<%- end -%>
|
|
@@ -33,7 +33,8 @@ module Fastlane
|
|
|
33
33
|
path = json_res['path']
|
|
34
34
|
uri = URI.parse(Base64.decode64(s3_sign))
|
|
35
35
|
File.open(file, 'rb') do |f|
|
|
36
|
-
http = Net::HTTP.new(uri.host)
|
|
36
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
|
37
|
+
http.use_ssl = (uri.scheme == 'https')
|
|
37
38
|
put = Net::HTTP::Put.new(uri.request_uri)
|
|
38
39
|
put.body = f.read
|
|
39
40
|
put['content-type'] = ''
|