fastlane_iac_publish 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (808) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/LICENSE +21 -0
  4. data/README.md +195 -0
  5. data/bin/bin-proxy +19 -0
  6. data/bin/fastlane +23 -0
  7. data/cert/README.md +17 -0
  8. data/cert/lib/cert.rb +4 -0
  9. data/cert/lib/cert/commands_generator.rb +59 -0
  10. data/cert/lib/cert/module.rb +14 -0
  11. data/cert/lib/cert/options.rb +92 -0
  12. data/cert/lib/cert/runner.rb +203 -0
  13. data/credentials_manager/README.md +64 -0
  14. data/credentials_manager/lib/credentials_manager.rb +7 -0
  15. data/credentials_manager/lib/credentials_manager/account_manager.rb +157 -0
  16. data/credentials_manager/lib/credentials_manager/appfile_config.rb +192 -0
  17. data/credentials_manager/lib/credentials_manager/cli.rb +67 -0
  18. data/deliver/README.md +17 -0
  19. data/deliver/lib/assets/DeliverfileDefault +3 -0
  20. data/deliver/lib/assets/DeliverfileDefault.swift +13 -0
  21. data/deliver/lib/assets/ScreenshotsHelp +7 -0
  22. data/deliver/lib/assets/summary.html.erb +299 -0
  23. data/deliver/lib/deliver.rb +15 -0
  24. data/deliver/lib/deliver/app_screenshot.rb +352 -0
  25. data/deliver/lib/deliver/commands_generator.rb +186 -0
  26. data/deliver/lib/deliver/detect_values.rb +93 -0
  27. data/deliver/lib/deliver/download_screenshots.rb +49 -0
  28. data/deliver/lib/deliver/generate_summary.rb +13 -0
  29. data/deliver/lib/deliver/html_generator.rb +71 -0
  30. data/deliver/lib/deliver/loader.rb +56 -0
  31. data/deliver/lib/deliver/module.rb +16 -0
  32. data/deliver/lib/deliver/options.rb +419 -0
  33. data/deliver/lib/deliver/runner.rb +202 -0
  34. data/deliver/lib/deliver/setup.rb +135 -0
  35. data/deliver/lib/deliver/submit_for_review.rb +122 -0
  36. data/deliver/lib/deliver/upload_assets.rb +27 -0
  37. data/deliver/lib/deliver/upload_metadata.rb +391 -0
  38. data/deliver/lib/deliver/upload_price_tier.rb +23 -0
  39. data/deliver/lib/deliver/upload_screenshots.rb +158 -0
  40. data/fastlane/README.md +11 -0
  41. data/fastlane/lib/assets/ActionDetails.md.erb +106 -0
  42. data/fastlane/lib/assets/Actions.md.erb +43 -0
  43. data/fastlane/lib/assets/AppfileTemplate +6 -0
  44. data/fastlane/lib/assets/AppfileTemplate.swift +7 -0
  45. data/fastlane/lib/assets/AppfileTemplateAndroid +2 -0
  46. data/fastlane/lib/assets/DefaultFastfileTemplate +20 -0
  47. data/fastlane/lib/assets/DefaultFastfileTemplate.swift +13 -0
  48. data/fastlane/lib/assets/completions/completion.bash +23 -0
  49. data/fastlane/lib/assets/completions/completion.fish +39 -0
  50. data/fastlane/lib/assets/completions/completion.sh +12 -0
  51. data/fastlane/lib/assets/completions/completion.zsh +23 -0
  52. data/fastlane/lib/assets/custom_action_template.rb +82 -0
  53. data/fastlane/lib/assets/mailgun_html_template.erb +142 -0
  54. data/fastlane/lib/assets/report_template.xml.erb +15 -0
  55. data/fastlane/lib/assets/s3_html_template.erb +105 -0
  56. data/fastlane/lib/assets/s3_plist_template.erb +31 -0
  57. data/fastlane/lib/assets/s3_version_template.erb +4 -0
  58. data/fastlane/lib/fastlane.rb +50 -0
  59. data/fastlane/lib/fastlane/action.rb +198 -0
  60. data/fastlane/lib/fastlane/action_collector.rb +35 -0
  61. data/fastlane/lib/fastlane/actions/README.md +3 -0
  62. data/fastlane/lib/fastlane/actions/actions_helper.rb +162 -0
  63. data/fastlane/lib/fastlane/actions/adb.rb +78 -0
  64. data/fastlane/lib/fastlane/actions/adb_devices.rb +71 -0
  65. data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +45 -0
  66. data/fastlane/lib/fastlane/actions/add_git_tag.rb +122 -0
  67. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +193 -0
  68. data/fastlane/lib/fastlane/actions/appaloosa.rb +266 -0
  69. data/fastlane/lib/fastlane/actions/appetize.rb +188 -0
  70. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +146 -0
  71. data/fastlane/lib/fastlane/actions/appium.rb +206 -0
  72. data/fastlane/lib/fastlane/actions/appledoc.rb +226 -0
  73. data/fastlane/lib/fastlane/actions/appstore.rb +14 -0
  74. data/fastlane/lib/fastlane/actions/apteligent.rb +105 -0
  75. data/fastlane/lib/fastlane/actions/artifactory.rb +157 -0
  76. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +220 -0
  77. data/fastlane/lib/fastlane/actions/backup_file.rb +41 -0
  78. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +135 -0
  79. data/fastlane/lib/fastlane/actions/badge.rb +155 -0
  80. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +107 -0
  81. data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
  82. data/fastlane/lib/fastlane/actions/build_app.rb +14 -0
  83. data/fastlane/lib/fastlane/actions/build_ios_app.rb +151 -0
  84. data/fastlane/lib/fastlane/actions/bundle_install.rb +156 -0
  85. data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +63 -0
  86. data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +61 -0
  87. data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
  88. data/fastlane/lib/fastlane/actions/carthage.rb +215 -0
  89. data/fastlane/lib/fastlane/actions/cert.rb +14 -0
  90. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +197 -0
  91. data/fastlane/lib/fastlane/actions/chatwork.rb +94 -0
  92. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +53 -0
  93. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +68 -0
  94. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +52 -0
  95. data/fastlane/lib/fastlane/actions/clear_derived_data.rb +70 -0
  96. data/fastlane/lib/fastlane/actions/clipboard.rb +52 -0
  97. data/fastlane/lib/fastlane/actions/cloc.rb +89 -0
  98. data/fastlane/lib/fastlane/actions/cocoapods.rb +148 -0
  99. data/fastlane/lib/fastlane/actions/commit_github_file.rb +186 -0
  100. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +301 -0
  101. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +114 -0
  102. data/fastlane/lib/fastlane/actions/crashlytics.rb +203 -0
  103. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +174 -0
  104. data/fastlane/lib/fastlane/actions/create_app_online.rb +75 -0
  105. data/fastlane/lib/fastlane/actions/create_keychain.rb +173 -0
  106. data/fastlane/lib/fastlane/actions/create_pull_request.rb +190 -0
  107. data/fastlane/lib/fastlane/actions/danger.rb +124 -0
  108. data/fastlane/lib/fastlane/actions/debug.rb +32 -0
  109. data/fastlane/lib/fastlane/actions/default_platform.rb +47 -0
  110. data/fastlane/lib/fastlane/actions/delete_keychain.rb +68 -0
  111. data/fastlane/lib/fastlane/actions/deliver.rb +14 -0
  112. data/fastlane/lib/fastlane/actions/deploygate.rb +210 -0
  113. data/fastlane/lib/fastlane/actions/device_grid/README.md +157 -0
  114. data/fastlane/lib/fastlane/actions/docs/build_ios_app.md +245 -0
  115. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +259 -0
  116. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +363 -0
  117. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +103 -0
  118. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +282 -0
  119. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +330 -0
  120. data/fastlane/lib/fastlane/actions/docs/get_certificates.md +86 -0
  121. data/fastlane/lib/fastlane/actions/docs/get_provisioning_profile.md +223 -0
  122. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +134 -0
  123. data/fastlane/lib/fastlane/actions/docs/run_tests.md +151 -0
  124. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +479 -0
  125. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +730 -0
  126. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +162 -0
  127. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +231 -0
  128. data/fastlane/lib/fastlane/actions/dotgpg_environment.rb +57 -0
  129. data/fastlane/lib/fastlane/actions/download.rb +76 -0
  130. data/fastlane/lib/fastlane/actions/download_dsyms.rb +266 -0
  131. data/fastlane/lib/fastlane/actions/download_from_play_store.rb +61 -0
  132. data/fastlane/lib/fastlane/actions/dsym_zip.rb +93 -0
  133. data/fastlane/lib/fastlane/actions/echo.rb +14 -0
  134. data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +59 -0
  135. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +69 -0
  136. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +81 -0
  137. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +135 -0
  138. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +97 -0
  139. data/fastlane/lib/fastlane/actions/environment_variable.rb +77 -0
  140. data/fastlane/lib/fastlane/actions/erb.rb +88 -0
  141. data/fastlane/lib/fastlane/actions/fastlane_version.rb +15 -0
  142. data/fastlane/lib/fastlane/actions/flock.rb +82 -0
  143. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +63 -0
  144. data/fastlane/lib/fastlane/actions/frameit.rb +14 -0
  145. data/fastlane/lib/fastlane/actions/gcovr.rb +163 -0
  146. data/fastlane/lib/fastlane/actions/get_build_number.rb +106 -0
  147. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +120 -0
  148. data/fastlane/lib/fastlane/actions/get_certificates.rb +76 -0
  149. data/fastlane/lib/fastlane/actions/get_github_release.rb +163 -0
  150. data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +78 -0
  151. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +82 -0
  152. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +120 -0
  153. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +100 -0
  154. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +87 -0
  155. data/fastlane/lib/fastlane/actions/get_version_number.rb +170 -0
  156. data/fastlane/lib/fastlane/actions/git_add.rb +93 -0
  157. data/fastlane/lib/fastlane/actions/git_branch.rb +58 -0
  158. data/fastlane/lib/fastlane/actions/git_commit.rb +80 -0
  159. data/fastlane/lib/fastlane/actions/git_pull.rb +53 -0
  160. data/fastlane/lib/fastlane/actions/git_submodule_update.rb +52 -0
  161. data/fastlane/lib/fastlane/actions/git_tag_exists.rb +74 -0
  162. data/fastlane/lib/fastlane/actions/github_api.rb +262 -0
  163. data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +73 -0
  164. data/fastlane/lib/fastlane/actions/gradle.rb +249 -0
  165. data/fastlane/lib/fastlane/actions/gym.rb +14 -0
  166. data/fastlane/lib/fastlane/actions/hg_add_tag.rb +48 -0
  167. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +183 -0
  168. data/fastlane/lib/fastlane/actions/hg_ensure_clean_status.rb +53 -0
  169. data/fastlane/lib/fastlane/actions/hg_push.rb +64 -0
  170. data/fastlane/lib/fastlane/actions/hipchat.rb +200 -0
  171. data/fastlane/lib/fastlane/actions/hockey.rb +406 -0
  172. data/fastlane/lib/fastlane/actions/ifttt.rb +96 -0
  173. data/fastlane/lib/fastlane/actions/import.rb +49 -0
  174. data/fastlane/lib/fastlane/actions/import_certificate.rb +77 -0
  175. data/fastlane/lib/fastlane/actions/import_from_git.rb +71 -0
  176. data/fastlane/lib/fastlane/actions/increment_build_number.rb +117 -0
  177. data/fastlane/lib/fastlane/actions/increment_version_number.rb +177 -0
  178. data/fastlane/lib/fastlane/actions/install_on_device.rb +95 -0
  179. data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +58 -0
  180. data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +91 -0
  181. data/fastlane/lib/fastlane/actions/installr.rb +132 -0
  182. data/fastlane/lib/fastlane/actions/ipa.rb +246 -0
  183. data/fastlane/lib/fastlane/actions/is_ci.rb +51 -0
  184. data/fastlane/lib/fastlane/actions/jazzy.rb +56 -0
  185. data/fastlane/lib/fastlane/actions/jira.rb +115 -0
  186. data/fastlane/lib/fastlane/actions/lane_context.rb +60 -0
  187. data/fastlane/lib/fastlane/actions/last_git_commit.rb +58 -0
  188. data/fastlane/lib/fastlane/actions/last_git_tag.rb +51 -0
  189. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +134 -0
  190. data/fastlane/lib/fastlane/actions/lcov.rb +102 -0
  191. data/fastlane/lib/fastlane/actions/mailgun.rb +197 -0
  192. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +81 -0
  193. data/fastlane/lib/fastlane/actions/match.rb +14 -0
  194. data/fastlane/lib/fastlane/actions/min_fastlane_version.rb +57 -0
  195. data/fastlane/lib/fastlane/actions/modify_services.rb +173 -0
  196. data/fastlane/lib/fastlane/actions/nexus_upload.rb +230 -0
  197. data/fastlane/lib/fastlane/actions/notification.rb +75 -0
  198. data/fastlane/lib/fastlane/actions/notify.rb +40 -0
  199. data/fastlane/lib/fastlane/actions/number_of_commits.rb +75 -0
  200. data/fastlane/lib/fastlane/actions/oclint.rb +269 -0
  201. data/fastlane/lib/fastlane/actions/onesignal.rb +156 -0
  202. data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +33 -0
  203. data/fastlane/lib/fastlane/actions/opt_out_usage.rb +40 -0
  204. data/fastlane/lib/fastlane/actions/pem.rb +14 -0
  205. data/fastlane/lib/fastlane/actions/pilot.rb +14 -0
  206. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +183 -0
  207. data/fastlane/lib/fastlane/actions/pod_push.rb +145 -0
  208. data/fastlane/lib/fastlane/actions/podio_item.rb +217 -0
  209. data/fastlane/lib/fastlane/actions/precheck.rb +14 -0
  210. data/fastlane/lib/fastlane/actions/println.rb +14 -0
  211. data/fastlane/lib/fastlane/actions/produce.rb +14 -0
  212. data/fastlane/lib/fastlane/actions/prompt.rb +119 -0
  213. data/fastlane/lib/fastlane/actions/push_git_tags.rb +76 -0
  214. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +127 -0
  215. data/fastlane/lib/fastlane/actions/puts.rb +68 -0
  216. data/fastlane/lib/fastlane/actions/read_podspec.rb +90 -0
  217. data/fastlane/lib/fastlane/actions/recreate_schemes.rb +46 -0
  218. data/fastlane/lib/fastlane/actions/register_device.rb +110 -0
  219. data/fastlane/lib/fastlane/actions/register_devices.rb +160 -0
  220. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +121 -0
  221. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +92 -0
  222. data/fastlane/lib/fastlane/actions/resign.rb +132 -0
  223. data/fastlane/lib/fastlane/actions/restore_file.rb +44 -0
  224. data/fastlane/lib/fastlane/actions/rocket.rb +83 -0
  225. data/fastlane/lib/fastlane/actions/rsync.rb +74 -0
  226. data/fastlane/lib/fastlane/actions/ruby_version.rb +56 -0
  227. data/fastlane/lib/fastlane/actions/run_tests.rb +131 -0
  228. data/fastlane/lib/fastlane/actions/s3.rb +460 -0
  229. data/fastlane/lib/fastlane/actions/say.rb +56 -0
  230. data/fastlane/lib/fastlane/actions/scan.rb +14 -0
  231. data/fastlane/lib/fastlane/actions/scp.rb +114 -0
  232. data/fastlane/lib/fastlane/actions/screengrab.rb +14 -0
  233. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +76 -0
  234. data/fastlane/lib/fastlane/actions/set_changelog.rb +172 -0
  235. data/fastlane/lib/fastlane/actions/set_github_release.rb +274 -0
  236. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +92 -0
  237. data/fastlane/lib/fastlane/actions/set_pod_key.rb +78 -0
  238. data/fastlane/lib/fastlane/actions/setup_ci.rb +121 -0
  239. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +58 -0
  240. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +193 -0
  241. data/fastlane/lib/fastlane/actions/setup_travis.rb +57 -0
  242. data/fastlane/lib/fastlane/actions/sh.rb +71 -0
  243. data/fastlane/lib/fastlane/actions/sigh.rb +14 -0
  244. data/fastlane/lib/fastlane/actions/skip_docs.rb +52 -0
  245. data/fastlane/lib/fastlane/actions/slack.rb +288 -0
  246. data/fastlane/lib/fastlane/actions/slather.rb +314 -0
  247. data/fastlane/lib/fastlane/actions/snapshot.rb +14 -0
  248. data/fastlane/lib/fastlane/actions/sonar.rb +138 -0
  249. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +135 -0
  250. data/fastlane/lib/fastlane/actions/splunkmint.rb +156 -0
  251. data/fastlane/lib/fastlane/actions/spm.rb +123 -0
  252. data/fastlane/lib/fastlane/actions/ssh.rb +162 -0
  253. data/fastlane/lib/fastlane/actions/supply.rb +14 -0
  254. data/fastlane/lib/fastlane/actions/swiftlint.rb +182 -0
  255. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +103 -0
  256. data/fastlane/lib/fastlane/actions/team_id.rb +42 -0
  257. data/fastlane/lib/fastlane/actions/team_name.rb +42 -0
  258. data/fastlane/lib/fastlane/actions/testfairy.rb +263 -0
  259. data/fastlane/lib/fastlane/actions/testflight.rb +14 -0
  260. data/fastlane/lib/fastlane/actions/tryouts.rb +149 -0
  261. data/fastlane/lib/fastlane/actions/twitter.rb +89 -0
  262. data/fastlane/lib/fastlane/actions/typetalk.rb +93 -0
  263. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +132 -0
  264. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +91 -0
  265. data/fastlane/lib/fastlane/actions/update_app_identifier.rb +124 -0
  266. data/fastlane/lib/fastlane/actions/update_fastlane.rb +177 -0
  267. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +99 -0
  268. data/fastlane/lib/fastlane/actions/update_info_plist.rb +143 -0
  269. data/fastlane/lib/fastlane/actions/update_plist.rb +80 -0
  270. data/fastlane/lib/fastlane/actions/update_project_code_signing.rb +76 -0
  271. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +173 -0
  272. data/fastlane/lib/fastlane/actions/update_project_team.rb +95 -0
  273. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +91 -0
  274. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +123 -0
  275. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +244 -0
  276. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +165 -0
  277. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +65 -0
  278. data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +80 -0
  279. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +107 -0
  280. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +104 -0
  281. data/fastlane/lib/fastlane/actions/verify_build.rb +199 -0
  282. data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +67 -0
  283. data/fastlane/lib/fastlane/actions/verify_xcode.rb +152 -0
  284. data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +105 -0
  285. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +71 -0
  286. data/fastlane/lib/fastlane/actions/xcode_install.rb +105 -0
  287. data/fastlane/lib/fastlane/actions/xcode_select.rb +63 -0
  288. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +312 -0
  289. data/fastlane/lib/fastlane/actions/xcodebuild.rb +641 -0
  290. data/fastlane/lib/fastlane/actions/xcov.rb +66 -0
  291. data/fastlane/lib/fastlane/actions/xctool.rb +55 -0
  292. data/fastlane/lib/fastlane/actions/xcversion.rb +55 -0
  293. data/fastlane/lib/fastlane/actions/zip.rb +120 -0
  294. data/fastlane/lib/fastlane/auto_complete.rb +82 -0
  295. data/fastlane/lib/fastlane/boolean.rb +5 -0
  296. data/fastlane/lib/fastlane/cli_tools_distributor.rb +185 -0
  297. data/fastlane/lib/fastlane/command_line_handler.rb +49 -0
  298. data/fastlane/lib/fastlane/commands_generator.rb +350 -0
  299. data/fastlane/lib/fastlane/configuration_helper.rb +26 -0
  300. data/fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb +14 -0
  301. data/fastlane/lib/fastlane/documentation/actions_list.rb +214 -0
  302. data/fastlane/lib/fastlane/documentation/docs_generator.rb +89 -0
  303. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +228 -0
  304. data/fastlane/lib/fastlane/environment_printer.rb +297 -0
  305. data/fastlane/lib/fastlane/erb_template_helper.rb +30 -0
  306. data/fastlane/lib/fastlane/fast_file.rb +351 -0
  307. data/fastlane/lib/fastlane/fastlane_require.rb +75 -0
  308. data/fastlane/lib/fastlane/features.rb +4 -0
  309. data/fastlane/lib/fastlane/helper/README.md +29 -0
  310. data/fastlane/lib/fastlane/helper/adb_helper.rb +52 -0
  311. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +151 -0
  312. data/fastlane/lib/fastlane/helper/dotenv_helper.rb +50 -0
  313. data/fastlane/lib/fastlane/helper/gem_helper.rb +26 -0
  314. data/fastlane/lib/fastlane/helper/git_helper.rb +135 -0
  315. data/fastlane/lib/fastlane/helper/gradle_helper.rb +62 -0
  316. data/fastlane/lib/fastlane/helper/podspec_helper.rb +75 -0
  317. data/fastlane/lib/fastlane/helper/sh_helper.rb +134 -0
  318. data/fastlane/lib/fastlane/helper/xcodeproj_helper.rb +12 -0
  319. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +25 -0
  320. data/fastlane/lib/fastlane/junit_generator.rb +27 -0
  321. data/fastlane/lib/fastlane/lane.rb +97 -0
  322. data/fastlane/lib/fastlane/lane_list.rb +137 -0
  323. data/fastlane/lib/fastlane/lane_manager.rb +140 -0
  324. data/fastlane/lib/fastlane/lane_manager_base.rb +92 -0
  325. data/fastlane/lib/fastlane/markdown_table_formatter.rb +62 -0
  326. data/fastlane/lib/fastlane/new_action.rb +47 -0
  327. data/fastlane/lib/fastlane/one_off.rb +45 -0
  328. data/fastlane/lib/fastlane/other_action.rb +29 -0
  329. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +55 -0
  330. data/fastlane/lib/fastlane/plugins/plugin_generator.rb +86 -0
  331. data/fastlane/lib/fastlane/plugins/plugin_generator_ui.rb +19 -0
  332. data/fastlane/lib/fastlane/plugins/plugin_info.rb +49 -0
  333. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +159 -0
  334. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +387 -0
  335. data/fastlane/lib/fastlane/plugins/plugin_search.rb +46 -0
  336. data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +70 -0
  337. data/fastlane/lib/fastlane/plugins/plugins.rb +12 -0
  338. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +35 -0
  339. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +43 -0
  340. data/fastlane/lib/fastlane/plugins/template/.gitignore +12 -0
  341. data/fastlane/lib/fastlane/plugins/template/.rspec +5 -0
  342. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +180 -0
  343. data/fastlane/lib/fastlane/plugins/template/.travis.yml +4 -0
  344. data/fastlane/lib/fastlane/plugins/template/Gemfile +6 -0
  345. data/fastlane/lib/fastlane/plugins/template/LICENSE.erb +21 -0
  346. data/fastlane/lib/fastlane/plugins/template/README.md.erb +52 -0
  347. data/fastlane/lib/fastlane/plugins/template/Rakefile +9 -0
  348. data/fastlane/lib/fastlane/plugins/template/fastlane/Fastfile.erb +3 -0
  349. data/fastlane/lib/fastlane/plugins/template/fastlane/Pluginfile.erb +1 -0
  350. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%.rb.erb +16 -0
  351. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +47 -0
  352. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +16 -0
  353. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/version.rb.erb +5 -0
  354. data/fastlane/lib/fastlane/plugins/template/spec/%plugin_name%_action_spec.rb.erb +9 -0
  355. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +15 -0
  356. data/fastlane/lib/fastlane/runner.rb +371 -0
  357. data/fastlane/lib/fastlane/server/action_command.rb +61 -0
  358. data/fastlane/lib/fastlane/server/action_command_return.rb +14 -0
  359. data/fastlane/lib/fastlane/server/command_executor.rb +7 -0
  360. data/fastlane/lib/fastlane/server/command_parser.rb +44 -0
  361. data/fastlane/lib/fastlane/server/control_command.rb +23 -0
  362. data/fastlane/lib/fastlane/server/json_return_value_processor.rb +72 -0
  363. data/fastlane/lib/fastlane/server/socket_server.rb +232 -0
  364. data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +101 -0
  365. data/fastlane/lib/fastlane/setup/setup.rb +355 -0
  366. data/fastlane/lib/fastlane/setup/setup_android.rb +97 -0
  367. data/fastlane/lib/fastlane/setup/setup_ios.rb +504 -0
  368. data/fastlane/lib/fastlane/shells.rb +6 -0
  369. data/fastlane/lib/fastlane/supported_platforms.rb +28 -0
  370. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +383 -0
  371. data/fastlane/lib/fastlane/swift_fastlane_function.rb +320 -0
  372. data/fastlane/lib/fastlane/swift_lane_manager.rb +304 -0
  373. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +206 -0
  374. data/fastlane/lib/fastlane/tools.rb +33 -0
  375. data/fastlane/lib/fastlane/version.rb +6 -0
  376. data/fastlane/swift/Appfile.swift +17 -0
  377. data/fastlane/swift/ArgumentProcessor.swift +93 -0
  378. data/fastlane/swift/ControlCommand.swift +76 -0
  379. data/fastlane/swift/Deliverfile.swift +21 -0
  380. data/fastlane/swift/DeliverfileProtocol.swift +129 -0
  381. data/fastlane/swift/Fastfile.swift +12 -0
  382. data/fastlane/swift/Fastlane.swift +4396 -0
  383. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +425 -0
  384. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  385. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +103 -0
  386. data/fastlane/swift/FastlaneSwiftRunner/README.txt +10 -0
  387. data/fastlane/swift/Gymfile.swift +21 -0
  388. data/fastlane/swift/GymfileProtocol.swift +87 -0
  389. data/fastlane/swift/LaneFileProtocol.swift +140 -0
  390. data/fastlane/swift/Matchfile.swift +21 -0
  391. data/fastlane/swift/MatchfileProtocol.swift +61 -0
  392. data/fastlane/swift/Precheckfile.swift +21 -0
  393. data/fastlane/swift/PrecheckfileProtocol.swift +24 -0
  394. data/fastlane/swift/RubyCommand.swift +141 -0
  395. data/fastlane/swift/RubyCommandable.swift +44 -0
  396. data/fastlane/swift/Runner.swift +200 -0
  397. data/fastlane/swift/RunnerArgument.swift +24 -0
  398. data/fastlane/swift/Scanfile.swift +21 -0
  399. data/fastlane/swift/ScanfileProtocol.swift +117 -0
  400. data/fastlane/swift/Screengrabfile.swift +21 -0
  401. data/fastlane/swift/ScreengrabfileProtocol.swift +48 -0
  402. data/fastlane/swift/Snapshotfile.swift +21 -0
  403. data/fastlane/swift/SnapshotfileProtocol.swift +75 -0
  404. data/fastlane/swift/SocketClient.swift +305 -0
  405. data/fastlane/swift/SocketClientDelegateProtocol.swift +25 -0
  406. data/fastlane/swift/SocketResponse.swift +85 -0
  407. data/fastlane/swift/main.swift +52 -0
  408. data/fastlane/swift/upgrade_manifest.json +1 -0
  409. data/fastlane_core/README.md +79 -0
  410. data/fastlane_core/lib/assets/XMLTemplate.xml.erb +12 -0
  411. data/fastlane_core/lib/fastlane_core.rb +46 -0
  412. data/fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb +34 -0
  413. data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +38 -0
  414. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +23 -0
  415. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +54 -0
  416. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +71 -0
  417. data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +64 -0
  418. data/fastlane_core/lib/fastlane_core/android_package_name_guesser.rb +79 -0
  419. data/fastlane_core/lib/fastlane_core/build_watcher.rb +80 -0
  420. data/fastlane_core/lib/fastlane_core/cert_checker.rb +116 -0
  421. data/fastlane_core/lib/fastlane_core/command_executor.rb +99 -0
  422. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +103 -0
  423. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +314 -0
  424. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +332 -0
  425. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +182 -0
  426. data/fastlane_core/lib/fastlane_core/core_ext/cfpropertylist.rb +23 -0
  427. data/fastlane_core/lib/fastlane_core/core_ext/shellwords.rb +63 -0
  428. data/fastlane_core/lib/fastlane_core/core_ext/string.rb +17 -0
  429. data/fastlane_core/lib/fastlane_core/device_manager.rb +331 -0
  430. data/fastlane_core/lib/fastlane_core/env.rb +9 -0
  431. data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +72 -0
  432. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +57 -0
  433. data/fastlane_core/lib/fastlane_core/feature/feature.rb +51 -0
  434. data/fastlane_core/lib/fastlane_core/features.rb +4 -0
  435. data/fastlane_core/lib/fastlane_core/globals.rb +27 -0
  436. data/fastlane_core/lib/fastlane_core/helper.rb +414 -0
  437. data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +112 -0
  438. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +63 -0
  439. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +52 -0
  440. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +520 -0
  441. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +74 -0
  442. data/fastlane_core/lib/fastlane_core/languages.rb +16 -0
  443. data/fastlane_core/lib/fastlane_core/module.rb +31 -0
  444. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +44 -0
  445. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +48 -0
  446. data/fastlane_core/lib/fastlane_core/print_table.rb +131 -0
  447. data/fastlane_core/lib/fastlane_core/project.rb +481 -0
  448. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +111 -0
  449. data/fastlane_core/lib/fastlane_core/string_filters.rb +51 -0
  450. data/fastlane_core/lib/fastlane_core/swag.rb +85 -0
  451. data/fastlane_core/lib/fastlane_core/tag_version.rb +31 -0
  452. data/fastlane_core/lib/fastlane_core/test_parser.rb +107 -0
  453. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +17 -0
  454. data/fastlane_core/lib/fastlane_core/ui/errors.rb +1 -0
  455. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_common_error.rb +19 -0
  456. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_crash.rb +11 -0
  457. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +25 -0
  458. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_exception.rb +19 -0
  459. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +11 -0
  460. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +294 -0
  461. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +62 -0
  462. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +158 -0
  463. data/fastlane_core/lib/fastlane_core/ui/interface.rb +205 -0
  464. data/fastlane_core/lib/fastlane_core/ui/ui.rb +26 -0
  465. data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +37 -0
  466. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +109 -0
  467. data/frameit/README.md +17 -0
  468. data/frameit/lib/assets/empty.png +0 -0
  469. data/frameit/lib/frameit.rb +13 -0
  470. data/frameit/lib/frameit/commands_generator.rb +114 -0
  471. data/frameit/lib/frameit/config_parser.rb +114 -0
  472. data/frameit/lib/frameit/dependency_checker.rb +22 -0
  473. data/frameit/lib/frameit/device_types.rb +18 -0
  474. data/frameit/lib/frameit/editor.rb +563 -0
  475. data/frameit/lib/frameit/frame_downloader.rb +85 -0
  476. data/frameit/lib/frameit/mac_editor.rb +35 -0
  477. data/frameit/lib/frameit/module.rb +42 -0
  478. data/frameit/lib/frameit/offsets.rb +21 -0
  479. data/frameit/lib/frameit/options.rb +82 -0
  480. data/frameit/lib/frameit/runner.rb +82 -0
  481. data/frameit/lib/frameit/screenshot.rb +137 -0
  482. data/frameit/lib/frameit/strings_parser.rb +46 -0
  483. data/frameit/lib/frameit/template_finder.rb +42 -0
  484. data/frameit/lib/frameit/trim_box.rb +35 -0
  485. data/gym/README.md +17 -0
  486. data/gym/lib/assets/GymfileTemplate +13 -0
  487. data/gym/lib/assets/GymfileTemplate.swift +13 -0
  488. data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +61 -0
  489. data/gym/lib/gym.rb +9 -0
  490. data/gym/lib/gym/code_signing_mapping.rb +181 -0
  491. data/gym/lib/gym/commands_generator.rb +78 -0
  492. data/gym/lib/gym/detect_values.rb +171 -0
  493. data/gym/lib/gym/error_handler.rb +306 -0
  494. data/gym/lib/gym/generators/README.md +1 -0
  495. data/gym/lib/gym/generators/build_command_generator.rb +143 -0
  496. data/gym/lib/gym/generators/package_command_generator.rb +56 -0
  497. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +193 -0
  498. data/gym/lib/gym/manager.rb +22 -0
  499. data/gym/lib/gym/module.rb +36 -0
  500. data/gym/lib/gym/options.rb +262 -0
  501. data/gym/lib/gym/runner.rb +264 -0
  502. data/gym/lib/gym/xcode.rb +27 -0
  503. data/gym/lib/gym/xcodebuild_fixes/README.md +9 -0
  504. data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +35 -0
  505. data/match/README.md +17 -0
  506. data/match/lib/assets/MatchfileTemplate +11 -0
  507. data/match/lib/assets/MatchfileTemplate.swift +9 -0
  508. data/match/lib/assets/READMETemplate.md +56 -0
  509. data/match/lib/match.rb +13 -0
  510. data/match/lib/match/change_password.rb +70 -0
  511. data/match/lib/match/commands_generator.rb +175 -0
  512. data/match/lib/match/encryption.rb +45 -0
  513. data/match/lib/match/encryption/interface.rb +17 -0
  514. data/match/lib/match/encryption/openssl.rb +161 -0
  515. data/match/lib/match/generator.rb +91 -0
  516. data/match/lib/match/migrate.rb +98 -0
  517. data/match/lib/match/module.rb +27 -0
  518. data/match/lib/match/nuke.rb +260 -0
  519. data/match/lib/match/options.rb +198 -0
  520. data/match/lib/match/runner.rb +333 -0
  521. data/match/lib/match/setup.rb +40 -0
  522. data/match/lib/match/spaceship_ensure.rb +83 -0
  523. data/match/lib/match/storage.rb +42 -0
  524. data/match/lib/match/storage/git_storage.rb +214 -0
  525. data/match/lib/match/storage/google_cloud_storage.rb +265 -0
  526. data/match/lib/match/storage/interface.rb +110 -0
  527. data/match/lib/match/table_printer.rb +51 -0
  528. data/match/lib/match/utils.rb +75 -0
  529. data/pem/README.md +17 -0
  530. data/pem/lib/pem.rb +4 -0
  531. data/pem/lib/pem/commands_generator.rb +46 -0
  532. data/pem/lib/pem/manager.rb +112 -0
  533. data/pem/lib/pem/module.rb +19 -0
  534. data/pem/lib/pem/options.rb +103 -0
  535. data/pilot/README.md +17 -0
  536. data/pilot/lib/pilot.rb +9 -0
  537. data/pilot/lib/pilot/build_manager.rb +453 -0
  538. data/pilot/lib/pilot/commands_generator.rb +174 -0
  539. data/pilot/lib/pilot/features.rb +0 -0
  540. data/pilot/lib/pilot/manager.rb +80 -0
  541. data/pilot/lib/pilot/module.rb +11 -0
  542. data/pilot/lib/pilot/options.rb +266 -0
  543. data/pilot/lib/pilot/tester_exporter.rb +58 -0
  544. data/pilot/lib/pilot/tester_importer.rb +53 -0
  545. data/pilot/lib/pilot/tester_manager.rb +168 -0
  546. data/pilot/lib/pilot/tester_util.rb +0 -0
  547. data/precheck/README.md +17 -0
  548. data/precheck/lib/assets/PrecheckfileTemplate +27 -0
  549. data/precheck/lib/assets/PrecheckfileTemplate.swift +19 -0
  550. data/precheck/lib/precheck.rb +3 -0
  551. data/precheck/lib/precheck/commands_generator.rb +74 -0
  552. data/precheck/lib/precheck/item_to_check.rb +58 -0
  553. data/precheck/lib/precheck/module.rb +21 -0
  554. data/precheck/lib/precheck/options.rb +79 -0
  555. data/precheck/lib/precheck/rule.rb +171 -0
  556. data/precheck/lib/precheck/rule_check_result.rb +19 -0
  557. data/precheck/lib/precheck/rule_processor.rb +231 -0
  558. data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +80 -0
  559. data/precheck/lib/precheck/rules/all.rb +1 -0
  560. data/precheck/lib/precheck/rules/copyright_date_rule.rb +37 -0
  561. data/precheck/lib/precheck/rules/curse_words_rule.rb +62 -0
  562. data/precheck/lib/precheck/rules/custom_text_rule.rb +35 -0
  563. data/precheck/lib/precheck/rules/free_stuff_iap_rule.rb +31 -0
  564. data/precheck/lib/precheck/rules/future_functionality_rule.rb +33 -0
  565. data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +37 -0
  566. data/precheck/lib/precheck/rules/other_platforms_rule.rb +43 -0
  567. data/precheck/lib/precheck/rules/placeholder_words_rule.rb +31 -0
  568. data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +349 -0
  569. data/precheck/lib/precheck/rules/test_words_rule.rb +30 -0
  570. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +47 -0
  571. data/precheck/lib/precheck/runner.rb +176 -0
  572. data/produce/README.md +17 -0
  573. data/produce/lib/produce.rb +6 -0
  574. data/produce/lib/produce/available_default_languages.rb +51 -0
  575. data/produce/lib/produce/cloud_container.rb +82 -0
  576. data/produce/lib/produce/commands_generator.rb +235 -0
  577. data/produce/lib/produce/developer_center.rb +134 -0
  578. data/produce/lib/produce/group.rb +90 -0
  579. data/produce/lib/produce/itunes_connect.rb +92 -0
  580. data/produce/lib/produce/manager.rb +15 -0
  581. data/produce/lib/produce/merchant.rb +121 -0
  582. data/produce/lib/produce/module.rb +14 -0
  583. data/produce/lib/produce/options.rb +172 -0
  584. data/produce/lib/produce/service.rb +313 -0
  585. data/scan/README.md +17 -0
  586. data/scan/lib/assets/ScanfileTemplate +16 -0
  587. data/scan/lib/assets/ScanfileTemplate.swift +13 -0
  588. data/scan/lib/scan.rb +10 -0
  589. data/scan/lib/scan/commands_generator.rb +78 -0
  590. data/scan/lib/scan/detect_values.rb +219 -0
  591. data/scan/lib/scan/error_handler.rb +52 -0
  592. data/scan/lib/scan/manager.rb +21 -0
  593. data/scan/lib/scan/module.rb +32 -0
  594. data/scan/lib/scan/options.rb +390 -0
  595. data/scan/lib/scan/runner.rb +173 -0
  596. data/scan/lib/scan/slack_poster.rb +60 -0
  597. data/scan/lib/scan/test_command_generator.rb +160 -0
  598. data/scan/lib/scan/test_result_parser.rb +26 -0
  599. data/scan/lib/scan/xcpretty_reporter_options_generator.rb +85 -0
  600. data/screengrab/README.md +17 -0
  601. data/screengrab/lib/assets/ScreengrabfileTemplate +15 -0
  602. data/screengrab/lib/assets/ScreengrabfileTemplate.swift +15 -0
  603. data/screengrab/lib/screengrab.rb +7 -0
  604. data/screengrab/lib/screengrab/android_environment.rb +91 -0
  605. data/screengrab/lib/screengrab/commands_generator.rb +70 -0
  606. data/screengrab/lib/screengrab/dependency_checker.rb +58 -0
  607. data/screengrab/lib/screengrab/detect_values.rb +16 -0
  608. data/screengrab/lib/screengrab/module.rb +24 -0
  609. data/screengrab/lib/screengrab/options.rb +135 -0
  610. data/screengrab/lib/screengrab/page.html.erb +190 -0
  611. data/screengrab/lib/screengrab/reports_generator.rb +36 -0
  612. data/screengrab/lib/screengrab/runner.rb +379 -0
  613. data/screengrab/lib/screengrab/setup.rb +24 -0
  614. data/sigh/README.md +17 -0
  615. data/sigh/lib/assets/resign.sh +888 -0
  616. data/sigh/lib/sigh.rb +4 -0
  617. data/sigh/lib/sigh/commands_generator.rb +153 -0
  618. data/sigh/lib/sigh/download_all.rb +45 -0
  619. data/sigh/lib/sigh/local_manage.rb +145 -0
  620. data/sigh/lib/sigh/manager.rb +47 -0
  621. data/sigh/lib/sigh/module.rb +16 -0
  622. data/sigh/lib/sigh/options.rb +160 -0
  623. data/sigh/lib/sigh/repair.rb +34 -0
  624. data/sigh/lib/sigh/resign.rb +220 -0
  625. data/sigh/lib/sigh/runner.rb +285 -0
  626. data/snapshot/README.md +17 -0
  627. data/snapshot/lib/assets/SnapfileTemplate +34 -0
  628. data/snapshot/lib/assets/SnapfileTemplate.swift +41 -0
  629. data/snapshot/lib/assets/SnapshotHelper.swift +303 -0
  630. data/snapshot/lib/assets/SnapshotHelperXcode8.swift +172 -0
  631. data/snapshot/lib/snapshot.rb +19 -0
  632. data/snapshot/lib/snapshot/collector.rb +140 -0
  633. data/snapshot/lib/snapshot/commands_generator.rb +115 -0
  634. data/snapshot/lib/snapshot/dependency_checker.rb +69 -0
  635. data/snapshot/lib/snapshot/detect_values.rb +71 -0
  636. data/snapshot/lib/snapshot/error_handler.rb +24 -0
  637. data/snapshot/lib/snapshot/fixes/README.md +5 -0
  638. data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +27 -0
  639. data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +27 -0
  640. data/snapshot/lib/snapshot/latest_os_version.rb +34 -0
  641. data/snapshot/lib/snapshot/module.rb +44 -0
  642. data/snapshot/lib/snapshot/options.rb +223 -0
  643. data/snapshot/lib/snapshot/page.html.erb +285 -0
  644. data/snapshot/lib/snapshot/reports_generator.rb +125 -0
  645. data/snapshot/lib/snapshot/reset_simulators.rb +122 -0
  646. data/snapshot/lib/snapshot/runner.rb +146 -0
  647. data/snapshot/lib/snapshot/screenshot_flatten.rb +20 -0
  648. data/snapshot/lib/snapshot/screenshot_rotate.rb +36 -0
  649. data/snapshot/lib/snapshot/setup.rb +58 -0
  650. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +54 -0
  651. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +215 -0
  652. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +143 -0
  653. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +113 -0
  654. data/snapshot/lib/snapshot/test_command_generator.rb +102 -0
  655. data/snapshot/lib/snapshot/test_command_generator_base.rb +117 -0
  656. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +67 -0
  657. data/snapshot/lib/snapshot/update.rb +36 -0
  658. data/spaceship/README.md +183 -0
  659. data/spaceship/lib/assets/displayFamilies.json +181 -0
  660. data/spaceship/lib/assets/languageMapping.json +306 -0
  661. data/spaceship/lib/assets/languageMappingReadable.json +30 -0
  662. data/spaceship/lib/spaceship.rb +26 -0
  663. data/spaceship/lib/spaceship/babosa_fix.rb +30 -0
  664. data/spaceship/lib/spaceship/base.rb +310 -0
  665. data/spaceship/lib/spaceship/client.rb +892 -0
  666. data/spaceship/lib/spaceship/commands_generator.rb +52 -0
  667. data/spaceship/lib/spaceship/connect_api.rb +47 -0
  668. data/spaceship/lib/spaceship/connect_api/client.rb +178 -0
  669. data/spaceship/lib/spaceship/connect_api/model.rb +152 -0
  670. data/spaceship/lib/spaceship/connect_api/models/app.rb +97 -0
  671. data/spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb +28 -0
  672. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb +32 -0
  673. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +26 -0
  674. data/spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb +20 -0
  675. data/spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb +24 -0
  676. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +41 -0
  677. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +56 -0
  678. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +43 -0
  679. data/spaceship/lib/spaceship/connect_api/models/build.rb +144 -0
  680. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +56 -0
  681. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +36 -0
  682. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +46 -0
  683. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +37 -0
  684. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +48 -0
  685. data/spaceship/lib/spaceship/connect_api/models/device.rb +53 -0
  686. data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +20 -0
  687. data/spaceship/lib/spaceship/connect_api/models/profile.rb +60 -0
  688. data/spaceship/lib/spaceship/connect_api/models/user.rb +50 -0
  689. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +59 -0
  690. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +48 -0
  691. data/spaceship/lib/spaceship/connect_api/response.rb +67 -0
  692. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +33 -0
  693. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +322 -0
  694. data/spaceship/lib/spaceship/connect_api/token.rb +56 -0
  695. data/spaceship/lib/spaceship/connect_api/users/client.rb +33 -0
  696. data/spaceship/lib/spaceship/connect_api/users/users.rb +16 -0
  697. data/spaceship/lib/spaceship/du/du_client.rb +134 -0
  698. data/spaceship/lib/spaceship/du/upload_file.rb +58 -0
  699. data/spaceship/lib/spaceship/du/utilities.rb +99 -0
  700. data/spaceship/lib/spaceship/errors.rb +79 -0
  701. data/spaceship/lib/spaceship/globals.rb +12 -0
  702. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +14 -0
  703. data/spaceship/lib/spaceship/helper/plist_middleware.rb +16 -0
  704. data/spaceship/lib/spaceship/helper/rels_middleware.rb +28 -0
  705. data/spaceship/lib/spaceship/launcher.rb +99 -0
  706. data/spaceship/lib/spaceship/module.rb +8 -0
  707. data/spaceship/lib/spaceship/playground.rb +75 -0
  708. data/spaceship/lib/spaceship/portal/app.rb +192 -0
  709. data/spaceship/lib/spaceship/portal/app_group.rb +73 -0
  710. data/spaceship/lib/spaceship/portal/app_service.rb +87 -0
  711. data/spaceship/lib/spaceship/portal/certificate.rb +351 -0
  712. data/spaceship/lib/spaceship/portal/cloud_container.rb +74 -0
  713. data/spaceship/lib/spaceship/portal/device.rb +191 -0
  714. data/spaceship/lib/spaceship/portal/invite.rb +53 -0
  715. data/spaceship/lib/spaceship/portal/key.rb +101 -0
  716. data/spaceship/lib/spaceship/portal/legacy_wrapper.rb +21 -0
  717. data/spaceship/lib/spaceship/portal/merchant.rb +86 -0
  718. data/spaceship/lib/spaceship/portal/passbook.rb +78 -0
  719. data/spaceship/lib/spaceship/portal/person.rb +62 -0
  720. data/spaceship/lib/spaceship/portal/persons.rb +67 -0
  721. data/spaceship/lib/spaceship/portal/portal.rb +17 -0
  722. data/spaceship/lib/spaceship/portal/portal_base.rb +16 -0
  723. data/spaceship/lib/spaceship/portal/portal_client.rb +848 -0
  724. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +559 -0
  725. data/spaceship/lib/spaceship/portal/provisioning_profile_template.rb +52 -0
  726. data/spaceship/lib/spaceship/portal/spaceship.rb +154 -0
  727. data/spaceship/lib/spaceship/portal/ui/select_team.rb +116 -0
  728. data/spaceship/lib/spaceship/portal/website_push.rb +88 -0
  729. data/spaceship/lib/spaceship/provider.rb +13 -0
  730. data/spaceship/lib/spaceship/spaceauth_runner.rb +74 -0
  731. data/spaceship/lib/spaceship/test_flight.rb +10 -0
  732. data/spaceship/lib/spaceship/test_flight/app_test_info.rb +40 -0
  733. data/spaceship/lib/spaceship/test_flight/base.rb +39 -0
  734. data/spaceship/lib/spaceship/test_flight/beta_review_info.rb +19 -0
  735. data/spaceship/lib/spaceship/test_flight/build.rb +239 -0
  736. data/spaceship/lib/spaceship/test_flight/build_trains.rb +46 -0
  737. data/spaceship/lib/spaceship/test_flight/client.rb +361 -0
  738. data/spaceship/lib/spaceship/test_flight/export_compliance.rb +12 -0
  739. data/spaceship/lib/spaceship/test_flight/group.rb +131 -0
  740. data/spaceship/lib/spaceship/test_flight/test_info.rb +56 -0
  741. data/spaceship/lib/spaceship/test_flight/tester.rb +136 -0
  742. data/spaceship/lib/spaceship/tunes/app_analytics.rb +168 -0
  743. data/spaceship/lib/spaceship/tunes/app_details.rb +147 -0
  744. data/spaceship/lib/spaceship/tunes/app_image.rb +51 -0
  745. data/spaceship/lib/spaceship/tunes/app_ratings.rb +58 -0
  746. data/spaceship/lib/spaceship/tunes/app_review.rb +55 -0
  747. data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +49 -0
  748. data/spaceship/lib/spaceship/tunes/app_screenshot.rb +12 -0
  749. data/spaceship/lib/spaceship/tunes/app_status.rb +63 -0
  750. data/spaceship/lib/spaceship/tunes/app_submission.rb +161 -0
  751. data/spaceship/lib/spaceship/tunes/app_trailer.rb +64 -0
  752. data/spaceship/lib/spaceship/tunes/app_version.rb +961 -0
  753. data/spaceship/lib/spaceship/tunes/app_version_common.rb +35 -0
  754. data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +28 -0
  755. data/spaceship/lib/spaceship/tunes/app_version_history.rb +52 -0
  756. data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +27 -0
  757. data/spaceship/lib/spaceship/tunes/app_version_ref.rb +15 -0
  758. data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +27 -0
  759. data/spaceship/lib/spaceship/tunes/application.rb +448 -0
  760. data/spaceship/lib/spaceship/tunes/availability.rb +132 -0
  761. data/spaceship/lib/spaceship/tunes/b2b_user.rb +30 -0
  762. data/spaceship/lib/spaceship/tunes/build.rb +263 -0
  763. data/spaceship/lib/spaceship/tunes/build_details.rb +42 -0
  764. data/spaceship/lib/spaceship/tunes/build_train.rb +181 -0
  765. data/spaceship/lib/spaceship/tunes/developer_response.rb +23 -0
  766. data/spaceship/lib/spaceship/tunes/device_type.rb +17 -0
  767. data/spaceship/lib/spaceship/tunes/display_family.rb +84 -0
  768. data/spaceship/lib/spaceship/tunes/errors.rb +17 -0
  769. data/spaceship/lib/spaceship/tunes/iap.rb +151 -0
  770. data/spaceship/lib/spaceship/tunes/iap_detail.rb +243 -0
  771. data/spaceship/lib/spaceship/tunes/iap_families.rb +57 -0
  772. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +73 -0
  773. data/spaceship/lib/spaceship/tunes/iap_family_list.rb +28 -0
  774. data/spaceship/lib/spaceship/tunes/iap_list.rb +76 -0
  775. data/spaceship/lib/spaceship/tunes/iap_status.rb +52 -0
  776. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_info.rb +46 -0
  777. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_tier.rb +25 -0
  778. data/spaceship/lib/spaceship/tunes/iap_type.rb +45 -0
  779. data/spaceship/lib/spaceship/tunes/language_converter.rb +65 -0
  780. data/spaceship/lib/spaceship/tunes/language_item.rb +61 -0
  781. data/spaceship/lib/spaceship/tunes/legacy_wrapper.rb +13 -0
  782. data/spaceship/lib/spaceship/tunes/member.rb +84 -0
  783. data/spaceship/lib/spaceship/tunes/members.rb +35 -0
  784. data/spaceship/lib/spaceship/tunes/pricing_info.rb +42 -0
  785. data/spaceship/lib/spaceship/tunes/pricing_tier.rb +25 -0
  786. data/spaceship/lib/spaceship/tunes/sandbox_tester.rb +74 -0
  787. data/spaceship/lib/spaceship/tunes/spaceship.rb +39 -0
  788. data/spaceship/lib/spaceship/tunes/territory.rb +39 -0
  789. data/spaceship/lib/spaceship/tunes/transit_app_file.rb +23 -0
  790. data/spaceship/lib/spaceship/tunes/tunes.rb +35 -0
  791. data/spaceship/lib/spaceship/tunes/tunes_base.rb +17 -0
  792. data/spaceship/lib/spaceship/tunes/tunes_client.rb +1572 -0
  793. data/spaceship/lib/spaceship/tunes/user_detail.rb +15 -0
  794. data/spaceship/lib/spaceship/tunes/version_set.rb +26 -0
  795. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +287 -0
  796. data/spaceship/lib/spaceship/ui.rb +27 -0
  797. data/supply/README.md +17 -0
  798. data/supply/lib/supply.rb +30 -0
  799. data/supply/lib/supply/apk_listing.rb +14 -0
  800. data/supply/lib/supply/client.rb +458 -0
  801. data/supply/lib/supply/commands_generator.rb +66 -0
  802. data/supply/lib/supply/languages.rb +88 -0
  803. data/supply/lib/supply/listing.rb +32 -0
  804. data/supply/lib/supply/options.rb +266 -0
  805. data/supply/lib/supply/reader.rb +25 -0
  806. data/supply/lib/supply/setup.rb +112 -0
  807. data/supply/lib/supply/uploader.rb +349 -0
  808. metadata +1772 -0
@@ -0,0 +1,53 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ HG_REPO_WAS_CLEAN_ON_START = :HG_REPO_WAS_CLEAN_ON_START
5
+ end
6
+ # Raises an exception and stop the lane execution if the repo is not in a clean state
7
+ class HgEnsureCleanStatusAction < Action
8
+ def self.run(params)
9
+ repo_clean = `hg status`.empty?
10
+
11
+ if repo_clean
12
+ UI.success('Mercurial status is clean, all good! 😎')
13
+ Actions.lane_context[SharedValues::HG_REPO_WAS_CLEAN_ON_START] = true
14
+ else
15
+ UI.user_error!('Mercurial repository is dirty! Please ensure the repo is in a clean state by committing/stashing/discarding all changes first.')
16
+ end
17
+ end
18
+
19
+ def self.description
20
+ "Raises an exception if there are uncommitted hg changes"
21
+ end
22
+
23
+ def self.details
24
+ "Along the same lines as the [ensure_git_status_clean](https://docs.fastlane.tools/actions/ensure_git_status_clean/) action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the `before_all` block."
25
+ end
26
+
27
+ def self.output
28
+ [
29
+ ['HG_REPO_WAS_CLEAN_ON_START', 'Stores the fact that the hg repo was clean at some point']
30
+ ]
31
+ end
32
+
33
+ def self.author
34
+ # credits to lmirosevic for original git version
35
+ "sjrmanning"
36
+ end
37
+
38
+ def self.is_supported?(platform)
39
+ true
40
+ end
41
+
42
+ def self.example_code
43
+ [
44
+ 'hg_ensure_clean_status'
45
+ ]
46
+ end
47
+
48
+ def self.category
49
+ :source_control
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,64 @@
1
+ module Fastlane
2
+ module Actions
3
+ # Pushes commits to the remote hg repo
4
+ class HgPushAction < Action
5
+ def self.run(params)
6
+ command = ['hg', 'push']
7
+
8
+ command << '--force' if params[:force]
9
+ command << params[:destination] unless params[:destination].empty?
10
+
11
+ return command.join(' ') if Helper.test?
12
+
13
+ Actions.sh(command.join(' '))
14
+ UI.success('Successfully pushed changes to remote 🚀.')
15
+ end
16
+
17
+ def self.description
18
+ "This will push changes to the remote hg repository"
19
+ end
20
+
21
+ def self.details
22
+ "The mercurial equivalent of [push_to_git_remote](https://docs.fastlane.tools/actions/push_to_git_remote/). Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane’s actions."
23
+ end
24
+
25
+ def self.available_options
26
+ [
27
+ FastlaneCore::ConfigItem.new(key: :force,
28
+ env_name: "FL_HG_PUSH_FORCE",
29
+ description: "Force push to remote",
30
+ is_string: false,
31
+ default_value: false),
32
+ FastlaneCore::ConfigItem.new(key: :destination,
33
+ env_name: "FL_HG_PUSH_DESTINATION",
34
+ description: "The destination to push to",
35
+ default_value: '',
36
+ optional: true)
37
+ ]
38
+ end
39
+
40
+ def self.author
41
+ # credits to lmirosevic for original git version
42
+ "sjrmanning"
43
+ end
44
+
45
+ def self.is_supported?(platform)
46
+ true
47
+ end
48
+
49
+ def self.example_code
50
+ [
51
+ 'hg_push',
52
+ 'hg_push(
53
+ destination: "ssh://hg@repohost.com/owner/repo",
54
+ force: true
55
+ )'
56
+ ]
57
+ end
58
+
59
+ def self.category
60
+ :source_control
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,200 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class HipchatAction < Action
7
+ def self.run(options)
8
+ require 'net/http'
9
+ require 'uri'
10
+
11
+ api_token = options[:api_token]
12
+ api_version = options[:version]
13
+ api_host = options[:api_host]
14
+
15
+ message_format = options[:message_format]
16
+
17
+ channel = options[:channel]
18
+ if ['yellow', 'red', 'green', 'purple', 'gray', 'random'].include?(options[:custom_color]) == true
19
+ color = options[:custom_color]
20
+ else
21
+ color = (options[:success] ? 'green' : 'red')
22
+ end
23
+
24
+ from = options[:from]
25
+
26
+ message = options[:message]
27
+ if (message_format == "html") && (options[:include_html_header] == true)
28
+ message = "<table><tr><td><img src='https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png' width='50' height='50'></td><td>#{message[0..9999]}</td></tr></table>"
29
+ end
30
+
31
+ if api_version.to_i == 1
32
+ ########## running on V1 ##########
33
+ if user?(channel)
34
+ UI.user_error!("HipChat private message not working with API V1 please use API V2 instead")
35
+ else
36
+ uri = URI.parse("https://#{api_host}/v1/rooms/message")
37
+ response = Net::HTTP.post_form(uri, { 'from' => from,
38
+ 'auth_token' => api_token,
39
+ 'color' => color,
40
+ 'message_format' => message_format,
41
+ 'room_id' => channel,
42
+ 'message' => message,
43
+ 'notify' => options[:notify_room] ? '1' : '0' })
44
+
45
+ check_response_code(response, channel)
46
+ end
47
+ else
48
+ ########## running on V2 ##########
49
+ # Escape channel's name to guarantee it is a valid URL resource.
50
+ # First of all we verify that the value is not already escaped,
51
+ # escaping an escaped value will produce a wrong channel name.
52
+ escaped_channel = URI.unescape(channel) == channel ? URI.escape(channel) : channel
53
+ if user?(channel)
54
+ params = { 'message' => message, 'message_format' => message_format }
55
+ json_headers = { 'Content-Type' => 'application/json',
56
+ 'Accept' => 'application/json', 'Authorization' => "Bearer #{api_token}" }
57
+
58
+ uri = URI.parse("https://#{api_host}/v2/user/#{escaped_channel}/message")
59
+ http = Net::HTTP.new(uri.host, uri.port)
60
+ http.use_ssl = true
61
+
62
+ response = http.post(uri.path, params.to_json, json_headers)
63
+ else
64
+ uri = URI.parse("https://#{api_host}/v2/room/#{escaped_channel}/notification")
65
+ response = Net::HTTP.post_form(uri, { 'from' => from,
66
+ 'auth_token' => api_token,
67
+ 'color' => color,
68
+ 'message_format' => message_format,
69
+ 'message' => message,
70
+ 'notify' => options[:notify_room] ? 'true' : 'false' })
71
+ end
72
+ check_response_code(response, channel)
73
+ end
74
+ end
75
+
76
+ def self.user?(channel)
77
+ channel.to_s.start_with?('@')
78
+ end
79
+
80
+ def self.check_response_code(response, channel)
81
+ case response.code.to_i
82
+ when 200, 204
83
+ true
84
+ when 404
85
+ UI.user_error!("Channel `#{channel}` not found")
86
+ when 401
87
+ UI.user_error!("Access denied for channel `#{channel}`")
88
+ else
89
+ UI.user_error!("Unexpected #{response.code} for `#{channel}` with response: #{response.body}")
90
+ end
91
+ end
92
+
93
+ def self.description
94
+ "Send a error/success message to [HipChat](https://www.hipchat.com/)"
95
+ end
96
+
97
+ def self.available_options
98
+ [
99
+ FastlaneCore::ConfigItem.new(key: :message,
100
+ env_name: "FL_HIPCHAT_MESSAGE",
101
+ description: "The message to post on HipChat",
102
+ default_value: ''),
103
+ FastlaneCore::ConfigItem.new(key: :channel,
104
+ env_name: "FL_HIPCHAT_CHANNEL",
105
+ description: "The room or @username"),
106
+ FastlaneCore::ConfigItem.new(key: :api_token,
107
+ env_name: "HIPCHAT_API_TOKEN",
108
+ sensitive: true,
109
+ description: "Hipchat API Token",
110
+ verify_block: proc do |value|
111
+ unless value.to_s.length > 0
112
+ UI.error("Please add 'ENV[\"HIPCHAT_API_TOKEN\"] = \"your token\"' to your Fastfile's `before_all` section.")
113
+ UI.user_error!("No HIPCHAT_API_TOKEN given.")
114
+ end
115
+ end),
116
+ FastlaneCore::ConfigItem.new(key: :custom_color,
117
+ env_name: "FL_HIPCHAT_CUSTOM_COLOR",
118
+ description: "Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random'",
119
+ optional: true,
120
+ is_string: true),
121
+ FastlaneCore::ConfigItem.new(key: :success,
122
+ env_name: "FL_HIPCHAT_SUCCESS",
123
+ description: "Was this build successful? (true/false)",
124
+ optional: true,
125
+ default_value: true,
126
+ is_string: false),
127
+ FastlaneCore::ConfigItem.new(key: :version,
128
+ env_name: "HIPCHAT_API_VERSION",
129
+ description: "Version of the Hipchat API. Must be 1 or 2",
130
+ verify_block: proc do |value|
131
+ if value.nil? || ![1, 2].include?(value.to_i)
132
+ UI.error("Please add 'ENV[\"HIPCHAT_API_VERSION\"] = \"1 or 2\"' to your Fastfile's `before_all` section.")
133
+ UI.user_error!("No HIPCHAT_API_VERSION given.")
134
+ end
135
+ end),
136
+ FastlaneCore::ConfigItem.new(key: :notify_room,
137
+ env_name: "HIPCHAT_NOTIFY_ROOM",
138
+ description: "Should the people in the room be notified? (true/false)",
139
+ default_value: false,
140
+ optional: true,
141
+ is_string: false),
142
+ FastlaneCore::ConfigItem.new(key: :api_host,
143
+ env_name: "HIPCHAT_API_HOST",
144
+ description: "The host of the HipChat-Server API",
145
+ default_value: "api.hipchat.com",
146
+ optional: true),
147
+ FastlaneCore::ConfigItem.new(key: :message_format,
148
+ env_name: "FL_HIPCHAT_MESSAGE_FORMAT",
149
+ description: "Format of the message to post. Must be either 'html' or 'text'",
150
+ default_value: "html",
151
+ optional: true,
152
+ verify_block: proc do |value|
153
+ unless ["html", "text"].include?(value.to_s)
154
+ UI.error("Please specify the message format as either 'html' or 'text'.")
155
+ UI.user_error!("Unrecognized message_format.")
156
+ end
157
+ end),
158
+ FastlaneCore::ConfigItem.new(key: :include_html_header,
159
+ env_name: "FL_HIPCHAT_INCLUDE_HTML_HEADER",
160
+ description: "Should html formatted messages include a preformatted header? (true/false)",
161
+ default_value: true,
162
+ optional: true,
163
+ is_string: false),
164
+ FastlaneCore::ConfigItem.new(key: :from,
165
+ env_name: "FL_HIPCHAT_FROM",
166
+ description: "Name the message will appear to be sent from",
167
+ default_value: "fastlane",
168
+ optional: true)
169
+ ]
170
+ end
171
+
172
+ def self.author
173
+ "jingx23"
174
+ end
175
+
176
+ def self.is_supported?(platform)
177
+ true
178
+ end
179
+
180
+ def self.details
181
+ "Send a message to **room** (by default) or a direct message to **@username** with success (green) or failure (red) status."
182
+ end
183
+
184
+ def self.example_code
185
+ [
186
+ 'hipchat(
187
+ message: "App successfully released!",
188
+ message_format: "html", # or "text", defaults to "html"
189
+ channel: "Room or @username",
190
+ success: true
191
+ )'
192
+ ]
193
+ end
194
+
195
+ def self.category
196
+ :notifications
197
+ end
198
+ end
199
+ end
200
+ end
@@ -0,0 +1,406 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ HOCKEY_DOWNLOAD_LINK = :HOCKEY_DOWNLOAD_LINK
5
+ HOCKEY_BUILD_INFORMATION = :HOCKEY_BUILD_INFORMATION # contains all keys/values from the HockeyApp API, like :title, :bundle_identifier
6
+ end
7
+
8
+ # rubocop:disable Metrics/ClassLength
9
+ class HockeyAction < Action
10
+ def self.connection(options)
11
+ require 'faraday'
12
+ require 'faraday_middleware'
13
+
14
+ base_url = options.delete(:bypass_cdn) ? "https://rink.hockeyapp.net" : "https://upload.hockeyapp.net"
15
+ foptions = {
16
+ url: base_url
17
+ }
18
+ Faraday.new(foptions) do |builder|
19
+ builder.request(:multipart)
20
+ builder.request(:url_encoded)
21
+ builder.response(:json, content_type: /\bjson$/)
22
+ builder.use(FaradayMiddleware::FollowRedirects)
23
+ builder.adapter(:net_http)
24
+ end
25
+ end
26
+
27
+ def self.upload(api_token, ipa, options)
28
+ create_update = options.delete(:create_update)
29
+
30
+ if create_update
31
+ self.create_and_update_build(api_token, ipa, options)
32
+ else
33
+ self.upload_build(api_token, ipa, options)
34
+ end
35
+ end
36
+
37
+ # Uses https://support.hockeyapp.net/kb/api/api-versions#upload-version if a `public_identifier` was specified
38
+ # otherwise https://support.hockeyapp.net/kb/api/api-apps#upload-app
39
+ def self.upload_build(api_token, ipa, options)
40
+ connection = self.connection(options)
41
+
42
+ options[:ipa] = Faraday::UploadIO.new(ipa, 'application/octet-stream') if ipa && File.exist?(ipa)
43
+
44
+ dsym_filename = options.delete(:dsym_filename)
45
+ if dsym_filename
46
+ options[:dsym] = Faraday::UploadIO.new(dsym_filename, 'application/octet-stream')
47
+ end
48
+
49
+ connection.post do |req|
50
+ req.options.timeout = options.delete(:timeout)
51
+ if options[:public_identifier].nil?
52
+ req.url("/api/2/apps/upload")
53
+ else
54
+ req.url("/api/2/apps/#{options.delete(:public_identifier)}/app_versions/upload")
55
+ end
56
+ req.headers['X-HockeyAppToken'] = api_token
57
+ req.body = options
58
+ end
59
+ end
60
+
61
+ # Uses https://support.hockeyapp.net/kb/api/api-versions#create-version
62
+ # and https://support.hockeyapp.net/kb/api/api-versions#update-version
63
+ # to upload a build
64
+ def self.create_and_update_build(api_token, ipa, options)
65
+ [:public_identifier, :bundle_short_version, :bundle_version].each do |key|
66
+ UI.user_error!("To use the 'create_update' upload mechanism you need to pass the '#{key.to_sym}' option.") unless options[key]
67
+ end
68
+ # https://support.hockeyapp.net/discussions/problems/33355-is-uploadhockeyappnet-available-for-general-use
69
+ # GET requests are cached on CDN, so bypass it
70
+ options[:bypass_cdn] = true
71
+ connection = self.connection(options)
72
+
73
+ options.delete(:ipa)
74
+ options.delete(:apk)
75
+ app_id = options.delete(:public_identifier)
76
+
77
+ ipaio = Faraday::UploadIO.new(ipa, 'application/octet-stream') if ipa && File.exist?(ipa)
78
+ dsym = options.delete(:dsym)
79
+
80
+ if dsym
81
+ dsym_io = Faraday::UploadIO.new(dsym, 'application/octet-stream') if dsym && File.exist?(dsym)
82
+ end
83
+
84
+ # https://support.hockeyapp.net/discussions/problems/83559
85
+ # Should not set status to "2" (downloadable) until after the app is uploaded, so allow the caller
86
+ # to specify a different status for the `create` step
87
+ update_status = options[:status]
88
+ options[:status] = options[:create_status]
89
+
90
+ response = connection.get do |req|
91
+ req.url("/api/2/apps/#{app_id}/app_versions/new")
92
+ req.headers['X-HockeyAppToken'] = api_token
93
+ req.body = options
94
+ end
95
+
96
+ case response.status
97
+ when 200...300
98
+ app_version_id = response.body['id']
99
+ UI.message("successfully created version with id #{app_version_id}")
100
+ else
101
+ UI.user_error!("Error trying to create app version: #{response.status} - #{response.body}")
102
+ end
103
+
104
+ options[:ipa] = ipaio
105
+
106
+ if dsym
107
+ options[:dsym] = dsym_io
108
+ end
109
+
110
+ options[:status] = update_status
111
+
112
+ connection.put do |req|
113
+ req.options.timeout = options.delete(:timeout)
114
+ req.url("/api/2/apps/#{app_id}/app_versions/#{app_version_id}")
115
+ req.headers['X-HockeyAppToken'] = api_token
116
+ req.body = options
117
+ end
118
+ end
119
+
120
+ def self.run(options)
121
+ build_file = [
122
+ options[:ipa],
123
+ options[:apk]
124
+ ].detect { |e| !e.to_s.empty? }
125
+
126
+ if options[:dsym]
127
+ dsym_filename = options[:dsym]
128
+ else
129
+
130
+ if build_file.nil?
131
+ UI.user_error!("You have to provide a build file (params 'apk' or 'ipa')")
132
+ end
133
+
134
+ if options[:ipa].to_s.end_with?(".ipa")
135
+ dsym_path = options[:ipa].to_s.gsub('.ipa', '.app.dSYM.zip')
136
+ if File.exist?(dsym_path)
137
+ dsym_filename = dsym_path
138
+ else
139
+ UI.important("Symbols not found on path #{File.expand_path(dsym_path)}. Crashes won't be symbolicated properly")
140
+ dsym_filename = nil
141
+ end
142
+ end
143
+ end
144
+
145
+ UI.user_error!("Symbols on path '#{File.expand_path(dsym_filename)}' not found") if dsym_filename && !File.exist?(dsym_filename)
146
+
147
+ if options[:upload_dsym_only]
148
+ UI.success('Starting with dSYM upload to HockeyApp... this could take some time.')
149
+ else
150
+ UI.success('Starting with file(s) upload to HockeyApp... this could take some time.')
151
+ end
152
+
153
+ values = options.values
154
+ values[:dsym_filename] = dsym_filename
155
+ values[:notes_type] = options[:notes_type]
156
+
157
+ api_token = values.delete(:api_token)
158
+
159
+ values.delete_if { |k, v| v.nil? }
160
+
161
+ return values if Helper.test?
162
+
163
+ ipa_filename = build_file
164
+ ipa_filename = nil if options[:upload_dsym_only]
165
+
166
+ response = self.upload(api_token, ipa_filename, values)
167
+ case response.status
168
+ when 200...300
169
+ url = response.body['public_url']
170
+
171
+ Actions.lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] = url
172
+ Actions.lane_context[SharedValues::HOCKEY_BUILD_INFORMATION] = response.body
173
+
174
+ UI.message("Public Download URL: #{url}") if url
175
+ UI.success('Build successfully uploaded to HockeyApp!')
176
+ else
177
+ if response.body.to_s.include?("App could not be created")
178
+ UI.user_error!("Hockey has an issue processing this app. Please confirm that an app in Hockey matches this IPA's bundle ID or that you are using the correct API upload token. If error persists, please provide the :public_identifier option from the HockeyApp website. More information https://github.com/fastlane/fastlane/issues/400")
179
+ else
180
+ UI.user_error!("Error when trying to upload file(s) to HockeyApp: #{response.status} - #{response.body}")
181
+ end
182
+ end
183
+ end
184
+
185
+ def self.description
186
+ "Refer to [App Center](https://github.com/Microsoft/fastlane-plugin-appcenter/)"
187
+ end
188
+
189
+ def self.available_options
190
+ [
191
+ FastlaneCore::ConfigItem.new(key: :apk,
192
+ env_name: "FL_HOCKEY_APK",
193
+ description: "Path to your APK file",
194
+ default_value: Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
195
+ default_value_dynamic: true,
196
+ optional: true,
197
+ verify_block: proc do |value|
198
+ UI.user_error!("Couldn't find apk file at path '#{value}'") unless File.exist?(value)
199
+ end,
200
+ conflicting_options: [:ipa],
201
+ conflict_block: proc do |value|
202
+ UI.user_error!("You can't use 'apk' and '#{value.key}' options in one run")
203
+ end),
204
+ FastlaneCore::ConfigItem.new(key: :api_token,
205
+ env_name: "FL_HOCKEY_API_TOKEN",
206
+ sensitive: true,
207
+ description: "API Token for Hockey Access",
208
+ verify_block: proc do |value|
209
+ UI.user_error!("No API token for Hockey given, pass using `api_token: 'token'`") unless value && !value.empty?
210
+ end),
211
+ FastlaneCore::ConfigItem.new(key: :ipa,
212
+ env_name: "FL_HOCKEY_IPA",
213
+ description: "Path to your IPA file. Optional if you use the _gym_ or _xcodebuild_ action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism",
214
+ default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
215
+ default_value_dynamic: true,
216
+ optional: true,
217
+ verify_block: proc do |value|
218
+ UI.user_error!("Couldn't find ipa file at path '#{value}'") unless File.exist?(value)
219
+ end,
220
+ conflicting_options: [:apk],
221
+ conflict_block: proc do |value|
222
+ UI.user_error!("You can't use 'ipa' and '#{value.key}' options in one run")
223
+ end),
224
+ FastlaneCore::ConfigItem.new(key: :dsym,
225
+ env_name: "FL_HOCKEY_DSYM",
226
+ description: "Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file",
227
+ default_value: Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH],
228
+ default_value_dynamic: true,
229
+ optional: true,
230
+ verify_block: proc do |value|
231
+ # validation is done in the action
232
+ end),
233
+ FastlaneCore::ConfigItem.new(key: :create_update,
234
+ env_name: "FL_HOCKEY_CREATE_UPDATE",
235
+ description: "Set true if you want to create then update your app as opposed to just upload it."\
236
+ " You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version'",
237
+ is_string: false,
238
+ default_value: false,
239
+ verify_block: proc do |value|
240
+ # validation is done in the action
241
+ end),
242
+ FastlaneCore::ConfigItem.new(key: :notes,
243
+ env_name: "FL_HOCKEY_NOTES",
244
+ description: "Beta Notes",
245
+ default_value: Actions.lane_context[SharedValues::FL_CHANGELOG] || "No changelog given",
246
+ default_value_dynamic: true),
247
+ FastlaneCore::ConfigItem.new(key: :notify,
248
+ env_name: "FL_HOCKEY_NOTIFY",
249
+ description: "Notify testers? \"1\" for yes",
250
+ default_value: "1"),
251
+ FastlaneCore::ConfigItem.new(key: :status,
252
+ env_name: "FL_HOCKEY_STATUS",
253
+ description: "Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token)",
254
+ default_value: "2"),
255
+ FastlaneCore::ConfigItem.new(key: :create_status,
256
+ env_name: "FL_HOCKEY_CREATE_STATUS",
257
+ description: "Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token)",
258
+ default_value: "2"),
259
+ FastlaneCore::ConfigItem.new(key: :notes_type,
260
+ env_name: "FL_HOCKEY_NOTES_TYPE",
261
+ description: "Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default)",
262
+ default_value: "1"),
263
+ FastlaneCore::ConfigItem.new(key: :release_type,
264
+ env_name: "FL_HOCKEY_RELEASE_TYPE",
265
+ description: "Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise",
266
+ default_value: "0"),
267
+ FastlaneCore::ConfigItem.new(key: :mandatory,
268
+ env_name: "FL_HOCKEY_MANDATORY",
269
+ description: "Set to \"1\" to make this update mandatory",
270
+ default_value: "0"),
271
+ FastlaneCore::ConfigItem.new(key: :teams,
272
+ env_name: "FL_HOCKEY_TEAMS",
273
+ description: "Comma separated list of team ID numbers to which this build will be restricted",
274
+ optional: true),
275
+ FastlaneCore::ConfigItem.new(key: :users,
276
+ env_name: "FL_HOCKEY_USERS",
277
+ description: "Comma separated list of user ID numbers to which this build will be restricted",
278
+ optional: true),
279
+ FastlaneCore::ConfigItem.new(key: :tags,
280
+ env_name: "FL_HOCKEY_TAGS",
281
+ description: "Comma separated list of tags which will receive access to the build",
282
+ optional: true),
283
+ FastlaneCore::ConfigItem.new(key: :bundle_short_version,
284
+ env_name: "FL_HOCKEY_BUNDLE_SHORT_VERSION",
285
+ description: "The bundle_short_version of your application, required when using `create_update`",
286
+ optional: true),
287
+ FastlaneCore::ConfigItem.new(key: :bundle_version,
288
+ env_name: "FL_HOCKEY_BUNDLE_VERSION",
289
+ description: "The bundle_version of your application, required when using `create_update`",
290
+ optional: true),
291
+ FastlaneCore::ConfigItem.new(key: :public_identifier,
292
+ env_name: "FL_HOCKEY_PUBLIC_IDENTIFIER",
293
+ description: "App id of the app you are targeting, usually you won't need this value. Required, if `upload_dsym_only` set to `true`",
294
+ optional: true),
295
+ FastlaneCore::ConfigItem.new(key: :commit_sha,
296
+ env_name: "FL_HOCKEY_COMMIT_SHA",
297
+ description: "The Git commit SHA for this build",
298
+ optional: true),
299
+ FastlaneCore::ConfigItem.new(key: :repository_url,
300
+ env_name: "FL_HOCKEY_REPOSITORY_URL",
301
+ description: "The URL of your source repository",
302
+ optional: true),
303
+ FastlaneCore::ConfigItem.new(key: :build_server_url,
304
+ env_name: "FL_HOCKEY_BUILD_SERVER_URL",
305
+ description: "The URL of the build job on your build server",
306
+ optional: true),
307
+ FastlaneCore::ConfigItem.new(key: :upload_dsym_only,
308
+ env_name: "FL_HOCKEY_UPLOAD_DSYM_ONLY",
309
+ description: "Flag to upload only the dSYM file to hockey app",
310
+ is_string: false,
311
+ default_value: false),
312
+ FastlaneCore::ConfigItem.new(key: :owner_id,
313
+ env_name: "FL_HOCKEY_OWNER_ID",
314
+ description: "ID for the owner of the app",
315
+ optional: true),
316
+ FastlaneCore::ConfigItem.new(key: :strategy,
317
+ env_name: "FL_HOCKEY_STRATEGY",
318
+ description: "Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number",
319
+ default_value: "add",
320
+ verify_block: proc do |value|
321
+ UI.user_error!("Invalid value '#{value}' for key 'strategy'. Allowed values are 'add', 'replace'.") unless ['add', 'replace'].include?(value)
322
+ end),
323
+ FastlaneCore::ConfigItem.new(key: :timeout,
324
+ env_name: "FL_HOCKEY_TIMEOUT",
325
+ description: "Request timeout in seconds",
326
+ type: Integer,
327
+ optional: true),
328
+ FastlaneCore::ConfigItem.new(key: :bypass_cdn,
329
+ env_name: "FL_HOCKEY_BYPASS_CDN",
330
+ description: "Flag to bypass Hockey CDN when it uploads successfully but reports error",
331
+ is_string: false,
332
+ default_value: false),
333
+ FastlaneCore::ConfigItem.new(key: :dsa_signature,
334
+ env_name: "FL_HOCKEY_DSA_SIGNATURE",
335
+ description: "DSA signature for sparkle updates for macOS",
336
+ is_string: true,
337
+ default_value: "",
338
+ optional: true)
339
+ ]
340
+ end
341
+
342
+ def self.output
343
+ [
344
+ ['HOCKEY_DOWNLOAD_LINK', 'The newly generated download link for this build'],
345
+ ['HOCKEY_BUILD_INFORMATION', 'contains all keys/values from the HockeyApp API, like :title, :bundle_identifier']
346
+ ]
347
+ end
348
+
349
+ def self.author
350
+ ["KrauseFx", "modzelewski", "lacostej"]
351
+ end
352
+
353
+ def self.is_supported?(platform)
354
+ true
355
+ end
356
+
357
+ def self.details
358
+ [
359
+ "HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019.",
360
+ "Please migrate over to [App Center](https://github.com/Microsoft/fastlane-plugin-appcenter/)",
361
+ "",
362
+ "Symbols will also be uploaded automatically if a `app.dSYM.zip` file is found next to `app.ipa`. In case it is located in a different place you can specify the path explicitly in the `:dsym` parameter.",
363
+ "More information about the available options can be found in the [HockeyApp Docs](http://support.hockeyapp.net/kb/api/api-versions#upload-version)."
364
+ ].join("\n")
365
+ end
366
+
367
+ def self.example_code
368
+ [
369
+ 'hockey(
370
+ api_token: "...",
371
+ ipa: "./app.ipa",
372
+ notes: "Changelog"
373
+ )',
374
+ 'hockey(
375
+ api_token: "...",
376
+ create_update: true,
377
+ public_identifier: "....",
378
+ bundle_short_version: "1.0.2",
379
+ bundle_version: "1.0.2.145",
380
+ ipa: "./my.msi",
381
+ notes: "Changelog"
382
+ )',
383
+ '# You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls)
384
+ hockey(
385
+ api_token: "...",
386
+ ipa: "./app.ipa",
387
+ notes: "Changelog",
388
+ bypass_cdn: true
389
+ )'
390
+ ]
391
+ end
392
+
393
+ def self.category
394
+ :deprecated
395
+ end
396
+
397
+ def self.deprecated_notes
398
+ [
399
+ "HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019.",
400
+ "Please migrate over to [App Center](https://github.com/Microsoft/fastlane-plugin-appcenter/)"
401
+ ].join("\n")
402
+ end
403
+ end
404
+ # rubocop:enable Metrics/ClassLength
405
+ end
406
+ end