fastlane 1.94.0 → 1.94.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/lib/.DS_Store +0 -0
  3. data/lib/assets/.DS_Store +0 -0
  4. data/lib/assets/completions/.DS_Store +0 -0
  5. data/lib/fastlane/.DS_Store +0 -0
  6. data/lib/fastlane/actions/.DS_Store +0 -0
  7. data/lib/fastlane/actions/adb.rb +1 -2
  8. data/lib/fastlane/actions/adb_devices.rb +1 -2
  9. data/lib/fastlane/actions/appaloosa.rb +1 -2
  10. data/lib/fastlane/actions/appetize.rb +1 -1
  11. data/lib/fastlane/actions/appledoc.rb +1 -1
  12. data/lib/fastlane/actions/backup_file.rb +1 -1
  13. data/lib/fastlane/actions/backup_xcarchive.rb +0 -1
  14. data/lib/fastlane/actions/changelog_from_git_commits.rb +3 -4
  15. data/lib/fastlane/actions/crashlytics.rb +4 -2
  16. data/lib/fastlane/actions/deploygate.rb +2 -1
  17. data/lib/fastlane/actions/erb.rb +3 -6
  18. data/lib/fastlane/actions/flock.rb +2 -1
  19. data/lib/fastlane/actions/gradle.rb +2 -2
  20. data/lib/fastlane/actions/hg_commit_version_bump.rb +1 -2
  21. data/lib/fastlane/actions/hockey.rb +0 -1
  22. data/lib/fastlane/actions/ifttt.rb +2 -1
  23. data/lib/fastlane/actions/increment_version_number.rb +1 -2
  24. data/lib/fastlane/actions/install_on_device.rb +4 -8
  25. data/lib/fastlane/actions/ipa.rb +0 -1
  26. data/lib/fastlane/actions/jira.rb +0 -1
  27. data/lib/fastlane/actions/latest_testflight_build_number.rb +0 -1
  28. data/lib/fastlane/actions/lcov.rb +0 -2
  29. data/lib/fastlane/actions/mailgun.rb +0 -2
  30. data/lib/fastlane/actions/pod_lib_lint.rb +0 -1
  31. data/lib/fastlane/actions/restore_file.rb +1 -1
  32. data/lib/fastlane/actions/rsync.rb +3 -7
  33. data/lib/fastlane/actions/s3.rb +1 -2
  34. data/lib/fastlane/actions/scp.rb +7 -14
  35. data/lib/fastlane/actions/slack.rb +0 -1
  36. data/lib/fastlane/actions/slather.rb +4 -8
  37. data/lib/fastlane/actions/ssh.rb +27 -26
  38. data/lib/fastlane/actions/tryouts.rb +0 -1
  39. data/lib/fastlane/actions/twitter.rb +5 -10
  40. data/lib/fastlane/actions/typetalk.rb +2 -2
  41. data/lib/fastlane/actions/update_fastlane.rb +0 -1
  42. data/lib/fastlane/actions/upload_symbols_to_sentry.rb +2 -3
  43. data/lib/fastlane/actions/verify_build.rb +1 -1
  44. data/lib/fastlane/actions/xcode_server_get_assets.rb +2 -4
  45. data/lib/fastlane/actions/xcversion.rb +1 -2
  46. data/lib/fastlane/commands_generator.rb +2 -1
  47. data/lib/fastlane/core_ext/bundler_monkey_patch.rb +4 -4
  48. data/lib/fastlane/documentation/actions_list.rb +1 -1
  49. data/lib/fastlane/erb_template_helper.rb +0 -1
  50. data/lib/fastlane/helper/podspec_helper.rb +1 -1
  51. data/lib/fastlane/one_off.rb +2 -0
  52. data/lib/fastlane/plugins/.DS_Store +0 -0
  53. data/lib/fastlane/plugins/plugin_info.rb +3 -3
  54. data/lib/fastlane/plugins/plugin_info_collector.rb +0 -1
  55. data/lib/fastlane/plugins/template/.rubocop.yml +35 -172
  56. data/lib/fastlane/plugins/template/.travis.yml +4 -0
  57. data/lib/fastlane/plugins/template/circle.yml +9 -0
  58. data/lib/fastlane/runner.rb +1 -1
  59. data/lib/fastlane/version.rb +1 -1
  60. metadata +8 -3
@@ -4,7 +4,6 @@
4
4
  module Fastlane
5
5
  module Actions
6
6
  class SlackAction < Action
7
-
8
7
  def self.is_supported?(platform)
9
8
  true
10
9
  end
@@ -105,8 +105,7 @@ Slather is available at https://github.com/SlatherOrg/slather
105
105
  FastlaneCore::ConfigItem.new(key: :build_directory,
106
106
  env_name: "FL_SLATHER_BUILD_DIRECTORY", # The name of the environment variable
107
107
  description: "The location of the build output", # a short description of this parameter
108
- optional: true
109
- ),
108
+ optional: true),
110
109
  FastlaneCore::ConfigItem.new(key: :proj,
111
110
  env_name: "FL_SLATHER_PROJ", # The name of the environment variable
112
111
  description: "The project file that slather looks at", # a short description of this parameter
@@ -117,18 +116,15 @@ Slather is available at https://github.com/SlatherOrg/slather
117
116
  FastlaneCore::ConfigItem.new(key: :workspace,
118
117
  env_name: "FL_SLATHER_WORKSPACE",
119
118
  description: "The workspace that slather looks at",
120
- optional: true
121
- ),
119
+ optional: true),
122
120
  FastlaneCore::ConfigItem.new(key: :scheme,
123
121
  env_name: "FL_SLATHER_SCHEME", # The name of the environment variable
124
122
  description: "Scheme to use when calling slather",
125
- optional: true
126
- ),
123
+ optional: true),
127
124
  FastlaneCore::ConfigItem.new(key: :input_format,
128
125
  env_name: "FL_SLATHER_INPUT_FORMAT", # The name of the environment variable
129
126
  description: "The input format that slather should look for",
130
- optional: true
131
- ),
127
+ optional: true),
132
128
  FastlaneCore::ConfigItem.new(key: :buildkite,
133
129
  env_name: "FL_SLATHER_BUILDKITE_ENABLED", # The name of the environment variable
134
130
  description: "Tell slather that it is running on Buildkite",
@@ -6,7 +6,7 @@ module Fastlane
6
6
  end
7
7
 
8
8
  class SshAction < Action
9
- def self.ssh_exec!(ssh, command)
9
+ def self.ssh_exec!(ssh, command, log = true)
10
10
  stdout_data = ""
11
11
  stderr_data = ""
12
12
  exit_code = nil
@@ -18,10 +18,13 @@ module Fastlane
18
18
  end
19
19
  channel.on_data do |ch1, data|
20
20
  stdout_data += data
21
+ UI.command_output(data) if log
21
22
  end
22
23
 
23
24
  channel.on_extended_data do |ch2, type, data|
24
- stderr_data += data
25
+ # Only type 1 data is stderr (though no other types are defined by the standard)
26
+ # See http://net-ssh.github.io/net-ssh/Net/SSH/Connection/Channel.html#method-i-on_extended_data
27
+ stderr_data += data if type == 1
25
28
  end
26
29
 
27
30
  channel.on_request("exit-status") do |ch3, data|
@@ -33,8 +36,10 @@ module Fastlane
33
36
  end
34
37
  end
35
38
  end
39
+
40
+ # Wait for all open channels to close
36
41
  ssh.loop
37
- {stdout: stdout_data, stderr: stderr_data, exit_code: exit_code, exit_signal: exit_signal}
42
+ { stdout: stdout_data, stderr: stderr_data, exit_code: exit_code, exit_signal: exit_signal }
38
43
  end
39
44
 
40
45
  def self.run(params)
@@ -46,22 +51,24 @@ module Fastlane
46
51
  stdout = ""
47
52
  stderr = ""
48
53
 
49
- Net::SSH.start(params[:host], params[:username], {port: params[:port].to_i, password: params[:password]}) do |ssh|
54
+ Net::SSH.start(params[:host], params[:username], { port: params[:port].to_i, password: params[:password] }) do |ssh|
50
55
  params[:commands].each do |cmd|
51
- UI.important(['[SSH COMMAND]', cmd].join(': ')) if params[:log]
52
- return_value = ssh_exec!(ssh, cmd)
53
- UI.error("SSH Command failed '#{cmd}' Exit-Code: #{return_value[:exit_code]}") if return_value[:exit_code] > 0
54
- UI.user_error!("SSH Command failed") if return_value[:exit_code] > 0
56
+ UI.command(cmd) if params[:log]
57
+ return_value = ssh_exec!(ssh, cmd, params[:log])
58
+ if return_value[:exit_code] != 0
59
+ UI.error("SSH Command failed '#{cmd}' Exit-Code: #{return_value[:exit_code]}")
60
+ UI.user_error!("SSH Command failed")
61
+ end
55
62
 
56
63
  stderr << return_value[:stderr]
57
64
  stdout << return_value[:stdout]
58
65
  end
59
66
  end
60
- UI.message("Succesfully executed #{params[:commands].count} commands on host: #{params[:host]}")
61
- UI.message("\n########### \n #{stdout} \n###############".magenta) if params[:log]
67
+ command_word = params[:commands].count == 1 ? "command" : "commands"
68
+ UI.success("Succesfully executed #{params[:commands].count} #{command_word} on host #{params[:host]}")
62
69
  Actions.lane_context[SharedValues::SSH_STDOUT_VALUE] = stdout
63
70
  Actions.lane_context[SharedValues::SSH_STDERR_VALUE] = stderr
64
- return {stdout: Actions.lane_context[SharedValues::SSH_STDOUT_VALUE], stderr: Actions.lane_context[SharedValues::SSH_STDERR_VALUE]}
71
+ return { stdout: Actions.lane_context[SharedValues::SSH_STDOUT_VALUE], stderr: Actions.lane_context[SharedValues::SSH_STDERR_VALUE] }
65
72
  end
66
73
 
67
74
  #####################################################
@@ -82,52 +89,46 @@ module Fastlane
82
89
  short_option: "-u",
83
90
  env_name: "FL_SSH_USERNAME",
84
91
  description: "Username",
85
- is_string: true
86
- ),
92
+ is_string: true),
87
93
  FastlaneCore::ConfigItem.new(key: :password,
88
94
  short_option: "-p",
89
95
  env_name: "FL_SSH_PASSWORD",
90
96
  description: "Password",
91
97
  optional: true,
92
- is_string: true
93
- ),
98
+ is_string: true),
94
99
  FastlaneCore::ConfigItem.new(key: :host,
95
100
  short_option: "-H",
96
101
  env_name: "FL_SSH_HOST",
97
102
  description: "Hostname",
98
- is_string: true
99
- ),
103
+ is_string: true),
100
104
  FastlaneCore::ConfigItem.new(key: :port,
101
105
  short_option: "-P",
102
106
  env_name: "FL_SSH_PORT",
103
107
  description: "Port",
104
108
  optional: true,
105
109
  default_value: "22",
106
- is_string: true
107
- ),
110
+ is_string: true),
108
111
  FastlaneCore::ConfigItem.new(key: :commands,
109
112
  short_option: "-C",
110
113
  env_name: "FL_SSH_COMMANDS",
111
114
  description: "Commands",
112
115
  optional: true,
113
116
  is_string: false,
114
- type: Array
115
- ),
117
+ type: Array),
116
118
  FastlaneCore::ConfigItem.new(key: :log,
117
119
  short_option: "-l",
118
120
  env_name: "FL_SSH_LOG",
119
- description: "Log Commands",
121
+ description: "Log commands and output",
120
122
  optional: true,
121
123
  default_value: true,
122
- is_string: false
123
- )
124
+ is_string: false)
124
125
  ]
125
126
  end
126
127
 
127
128
  def self.output
128
129
  [
129
- ['SSH_STDOUT_VALUE', 'Holds the standard-output of all commands'],
130
- ['SSH_STDERR_VALUE', 'Holds the standard-error of all commands']
130
+ ['SSH_STDOUT_VALUE', 'Holds the standard output of all commands'],
131
+ ['SSH_STDERR_VALUE', 'Holds the standard error of all commands']
131
132
  ]
132
133
  end
133
134
 
@@ -5,7 +5,6 @@ module Fastlane
5
5
  TRYOUTS_BUILD_INFORMATION = :TRYOUTS_BUILD_INFORMATION
6
6
  end
7
7
  class TryoutsAction < Action
8
-
9
8
  TRYOUTS_API_BUILD_RELEASE_TEMPLATE = "https://api.tryouts.io/v1/applications/%s/releases/"
10
9
 
11
10
  def self.run(params)
@@ -31,32 +31,27 @@ module Fastlane
31
31
  env_name: "FL_TW_CONSUMER_KEY",
32
32
  description: "Consumer Key",
33
33
  is_string: true,
34
- optional: false
35
- ),
34
+ optional: false),
36
35
  FastlaneCore::ConfigItem.new(key: :consumer_secret,
37
36
  env_name: "FL_TW_CONSUMER_SECRET",
38
37
  description: "Consumer Secret",
39
38
  is_string: true,
40
- optional: false
41
- ),
39
+ optional: false),
42
40
  FastlaneCore::ConfigItem.new(key: :access_token,
43
41
  env_name: "FL_TW_ACCESS_TOKEN",
44
42
  description: "Access Token",
45
43
  is_string: true,
46
- optional: false
47
- ),
44
+ optional: false),
48
45
  FastlaneCore::ConfigItem.new(key: :access_token_secret,
49
46
  env_name: "FL_TW_ACCESS_TOKEN_SECRET",
50
47
  description: "Access Token Secret",
51
48
  is_string: true,
52
- optional: false
53
- ),
49
+ optional: false),
54
50
  FastlaneCore::ConfigItem.new(key: :message,
55
51
  env_name: "FL_TW_MESSAGE",
56
52
  description: "The tweet",
57
53
  is_string: true,
58
- optional: false
59
- )
54
+ optional: false)
60
55
 
61
56
  ]
62
57
  end
@@ -36,8 +36,8 @@ module Fastlane
36
36
  require 'uri'
37
37
 
38
38
  uri = URI.parse("https://typetalk.in/api/v1/topics/#{topic_id}")
39
- response = Net::HTTP.post_form(uri, {'message' => message,
40
- 'typetalkToken' => typetalk_token})
39
+ response = Net::HTTP.post_form(uri, { 'message' => message,
40
+ 'typetalkToken' => typetalk_token })
41
41
 
42
42
  self.check_response(response)
43
43
  end
@@ -5,7 +5,6 @@ module Fastlane
5
5
  module Actions
6
6
  # Makes sure fastlane tools are up-to-date when running fastlane
7
7
  class UpdateFastlaneAction < Action
8
-
9
8
  ALL_TOOLS = [
10
9
  "fastlane",
11
10
  "fastlane_core",
@@ -17,7 +17,7 @@ module Fastlane
17
17
 
18
18
  # Url to post dSYMs to
19
19
  url = "#{host}/projects/#{org}/#{project}/files/dsyms/"
20
- resource = RestClient::Resource.new( url, api_key, '' )
20
+ resource = RestClient::Resource.new(url, api_key, '')
21
21
 
22
22
  UI.message "Will upload dSYM(s) to #{url}"
23
23
 
@@ -64,8 +64,7 @@ module Fastlane
64
64
  description: "API host url for Sentry",
65
65
  is_string: true,
66
66
  default_value: "https://app.getsentry.com/api/0",
67
- optional: true
68
- ),
67
+ optional: true),
69
68
  FastlaneCore::ConfigItem.new(key: :api_key,
70
69
  env_name: "SENTRY_API_KEY",
71
70
  description: "API Key for Sentry",
@@ -85,7 +85,7 @@ module Fastlane
85
85
  columns << key
86
86
  columns << case value
87
87
  when Hash
88
- value.map {|k, v| "#{k}: #{v}"}.join("\n")
88
+ value.map { |k, v| "#{k}: #{v}" }.join("\n")
89
89
  when Array
90
90
  value.join("\n")
91
91
  else
@@ -7,7 +7,6 @@ module Fastlane
7
7
  end
8
8
 
9
9
  class XcodeServerGetAssetsAction < Action
10
-
11
10
  require 'excon'
12
11
  require 'json'
13
12
  require 'fileutils'
@@ -108,7 +107,6 @@ module Fastlane
108
107
  end
109
108
 
110
109
  class XcodeServer
111
-
112
110
  def initialize(host, username, password)
113
111
  @host = host.start_with?('https://') ? host : "https://#{host}"
114
112
  @username = username
@@ -131,7 +129,7 @@ module Fastlane
131
129
  def fetch_assets(integration_id, target_folder, action)
132
130
  # create a temp folder and a file, stream the download into it
133
131
  Dir.mktmpdir do |dir|
134
- temp_file = File.join(dir, "tmp_download.#{rand(1000000)}")
132
+ temp_file = File.join(dir, "tmp_download.#{rand(1_000_000)}")
135
133
  f = open(temp_file, 'w')
136
134
  streamer = lambda do |chunk, remaining_bytes, total_bytes|
137
135
  if remaining_bytes && total_bytes
@@ -149,7 +147,7 @@ module Fastlane
149
147
  UI.user_error!("Failed to fetch Assets zip for Integration #{integration_id} from Xcode Server at #{@host}, response: #{response.status}: #{response.body}") if response.status != 200
150
148
 
151
149
  # unzip it, it's a .tar.gz file
152
- out_folder = File.join(dir, "out_#{rand(1000000)}")
150
+ out_folder = File.join(dir, "out_#{rand(1_000_000)}")
153
151
  FileUtils.mkdir_p(out_folder)
154
152
 
155
153
  action.sh "cd \"#{out_folder}\"; cat \"#{temp_file}\" | gzip -d | tar -x"
@@ -26,8 +26,7 @@ module Fastlane
26
26
  env_name: "FL_XCODE_VERSION",
27
27
  description: "The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0')",
28
28
  optional: false,
29
- verify_block: Helper::XcversionHelper::Verify.method(:requirement)
30
- )
29
+ verify_block: Helper::XcversionHelper::Verify.method(:requirement))
31
30
  ]
32
31
  end
33
32
 
@@ -27,7 +27,8 @@ module Fastlane
27
27
  program :description, [
28
28
  "CLI for 'fastlane' - #{Fastlane::DESCRIPTION}\n",
29
29
  "\tRun using `fastlane [platform] [lane_name]`",
30
- "\tTo pass values to the lanes use `fastlane [platform] [lane_name] key:value key2:value2`"].join("\n")
30
+ "\tTo pass values to the lanes use `fastlane [platform] [lane_name] key:value key2:value2`"
31
+ ].join("\n")
31
32
  program :help, 'Author', 'Felix Krause <fastlane@krausefx.com>'
32
33
  program :help, 'Website', 'https://fastlane.tools'
33
34
  program :help, 'GitHub', 'https://github.com/fastlane/fastlane'
@@ -3,12 +3,12 @@
3
3
  # There is an issue with Rubygems 2.6.2 where it attempts to call Bundler::SpecSet#size, which doesn't exist.
4
4
  # If a gem is not installed, a `Gem::Specification.find_by_name` call will trigger this problem.
5
5
  if Object.const_defined?(:Bundler) &&
6
- Bundler.const_defined?(:SpecSet) &&
7
- Bundler::SpecSet.instance_methods.include?(:length) &&
8
- !Bundler::SpecSet.instance_methods.include?(:size)
6
+ Bundler.const_defined?(:SpecSet) &&
7
+ Bundler::SpecSet.instance_methods.include?(:length) &&
8
+ !Bundler::SpecSet.instance_methods.include?(:size)
9
9
  module Bundler
10
10
  class SpecSet
11
- alias_method :size, :length
11
+ alias size length
12
12
  end
13
13
  end
14
14
  end
@@ -126,7 +126,7 @@ module Fastlane
126
126
 
127
127
  # Iterates through all available actions and yields from there
128
128
  def self.all_actions(platform = nil)
129
- action_symbols = Fastlane::Actions.constants.select {|c| Fastlane::Actions.const_get(c).kind_of? Class }
129
+ action_symbols = Fastlane::Actions.constants.select { |c| Fastlane::Actions.const_get(c).kind_of? Class }
130
130
  action_symbols.sort.each do |symbol|
131
131
  action = Fastlane::Actions.const_get(symbol)
132
132
 
@@ -16,7 +16,6 @@ module Fastlane
16
16
  def self.render(template, template_vars_hash)
17
17
  Fastlane::ErbalT.new(template_vars_hash).render(template)
18
18
  end
19
-
20
19
  end
21
20
  class ErbalT < OpenStruct
22
21
  def render(template)
@@ -51,7 +51,7 @@ module Fastlane
51
51
  new_version = version || @version_value
52
52
  updated_podspec_content = @podspec_content.gsub(@version_regex, "#{@version_match[:begin]}#{new_version}#{@version_match[:end]}")
53
53
 
54
- File.open(@path, "w") {|file| file.puts updated_podspec_content} unless Helper.test?
54
+ File.open(@path, "w") { |file| file.puts updated_podspec_content } unless Helper.test?
55
55
 
56
56
  updated_podspec_content
57
57
  end
@@ -24,6 +24,8 @@ module Fastlane
24
24
  end
25
25
 
26
26
  def self.run(action: nil, parameters: nil)
27
+ Fastlane.load_actions
28
+
27
29
  class_name = action.fastlane_class + 'Action'
28
30
  class_ref = nil
29
31
  begin
@@ -39,9 +39,9 @@ module Fastlane
39
39
 
40
40
  def ==(other)
41
41
  @plugin_name == other.plugin_name &&
42
- @author == other.author &&
43
- @email == other.email &&
44
- @summary == other.summary
42
+ @author == other.author &&
43
+ @email == other.email &&
44
+ @summary == other.summary
45
45
  end
46
46
  end
47
47
  end
@@ -147,6 +147,5 @@ module Fastlane
147
147
  def summary_valid?(summary)
148
148
  !summary.to_s.strip.empty?
149
149
  end
150
-
151
150
  end
152
151
  end
@@ -1,27 +1,32 @@
1
-
1
+ # kind_of? is a good way to check a type
2
2
  Style/ClassCheck:
3
3
  EnforcedStyle: kind_of?
4
4
 
5
- # Cop supports --auto-correct.
6
- # Configuration parameters: EnforcedStyle, SupportedStyles.
5
+ # It's better to be more explicit about the type
7
6
  Style/BracesAroundHashParameters:
8
7
  Enabled: false
9
8
 
9
+ # specs sometimes have useless assignments, which is fine
10
10
  Lint/UselessAssignment:
11
11
  Exclude:
12
12
  - '**/spec/**/*'
13
13
 
14
- # Cop supports --auto-correct.
15
- # Configuration parameters: EnforcedStyle, SupportedStyles.
14
+ # We could potentially enable the 2 below:
16
15
  Style/IndentHash:
17
16
  Enabled: false
18
17
 
19
- Style/RaiseArgs:
20
- EnforcedStyle: exploded
18
+ Style/AlignHash:
19
+ Enabled: false
20
+
21
+ # HoundCI doesn't like this rule
22
+ Style/DotPosition:
23
+ Enabled: false
21
24
 
25
+ # We allow !! as it's an easy way to convert ot boolean
22
26
  Style/DoubleNegation:
23
27
  Enabled: false
24
28
 
29
+ # Sometimes we allow a rescue block that doesn't contain code
25
30
  Lint/HandleExceptions:
26
31
  Enabled: false
27
32
 
@@ -33,33 +38,23 @@ Lint/UnusedBlockArgument:
33
38
  Style/GlobalVars:
34
39
  Enabled: false
35
40
 
36
- Style/FileName:
41
+ # We want to allow class Fastlane::Class
42
+ Style/ClassAndModuleChildren:
37
43
  Enabled: false
38
44
 
39
45
  # $? Exit
40
46
  Style/SpecialGlobalVars:
41
47
  Enabled: false
42
48
 
43
- Style/RaiseArgs:
44
- Enabled: false
45
-
46
49
  Metrics/AbcSize:
47
- Max: 63
50
+ Max: 60
48
51
  Exclude:
49
52
  - '**/lib/*/options.rb'
50
53
 
51
- # Both string notations are okay
52
- Style/StringLiterals:
53
- Enabled: false
54
-
55
54
  # The %w might be confusing for new users
56
55
  Style/WordArray:
57
56
  MinSize: 19
58
57
 
59
- # Not a good thing
60
- Style/RedundantSelf:
61
- Enabled: false
62
-
63
58
  # raise and fail are both okay
64
59
  Style/SignalException:
65
60
  Enabled: false
@@ -72,10 +67,6 @@ Style/RedundantReturn:
72
67
  Style/IfUnlessModifier:
73
68
  Enabled: false
74
69
 
75
- # That looks wrong
76
- Style/AlignHash:
77
- Enabled: false
78
-
79
70
  # and and or is okay
80
71
  Style/AndOr:
81
72
  Enabled: false
@@ -98,16 +89,22 @@ Metrics/ParameterLists:
98
89
  Metrics/PerceivedComplexity:
99
90
  Max: 18
100
91
 
101
- Style/DotPosition:
102
- Enabled: false
103
-
92
+ # Sometimes it's easier to read without guards
104
93
  Style/GuardClause:
105
94
  Enabled: false
106
95
 
96
+ # We allow both " and '
97
+ Style/StringLiterals:
98
+ Enabled: false
107
99
 
100
+ # something = if something_else
101
+ # that's confusing
102
+ Style/ConditionalAssignment:
103
+ Enabled: false
108
104
 
109
- # Split
110
-
105
+ # Better to have too much self than missing a self
106
+ Style/RedundantSelf:
107
+ Enabled: false
111
108
 
112
109
  # e.g.
113
110
  # def self.is_supported?(platform)
@@ -120,10 +117,15 @@ Lint/ParenthesesAsGroupedExpression:
120
117
  Exclude:
121
118
  - '**/spec/**/*'
122
119
 
120
+ # This would reject is_ in front of methods
123
121
  # We use `is_supported?` everywhere already
124
122
  Style/PredicateName:
125
123
  Enabled: false
126
124
 
125
+ # We allow the $
126
+ Style/PerlBackrefs:
127
+ Enabled: false
128
+
127
129
  # Disable '+ should be surrounded with a single space' for xcodebuild_spec.rb
128
130
  Style/SpaceAroundOperators:
129
131
  Exclude:
@@ -134,7 +136,6 @@ Metrics/MethodLength:
134
136
  - '**/lib/fastlane/actions/*.rb'
135
137
  - '**/bin/fastlane'
136
138
  - '**/lib/*/options.rb'
137
- - '**/bin/sigh'
138
139
  Max: 60
139
140
 
140
141
  AllCops:
@@ -142,146 +143,13 @@ AllCops:
142
143
  - '**/fastlane/Fastfile'
143
144
  Exclude:
144
145
  - '**/lib/assets/custom_action_template.rb'
146
+ - './vendor/**/*'
145
147
 
146
- ##################
147
- # TODO
148
- ##################
149
-
150
- # Offense count: 7
151
- # Configuration parameters: CountComments.
152
- Metrics/ClassLength:
153
- Max: 320
154
-
155
- # Offense count: 4
156
- Metrics/CyclomaticComplexity:
157
- Max: 17
158
-
159
- # Offense count: 489
160
- # Configuration parameters: AllowURI, URISchemes.
161
- Metrics/LineLength:
162
- Max: 372
163
-
164
- # Offense count: 5
165
- # Configuration parameters: CountKeywordArgs.
166
- Metrics/ParameterLists:
167
- Max: 17
168
-
169
- # Offense count: 3
170
- Metrics/PerceivedComplexity:
171
- Max: 18
172
-
173
- # Offense count: 1
174
- # Cop supports --auto-correct.
175
- Style/Alias:
176
- Enabled: false
177
-
178
- # Offense count: 14
179
- # Cop supports --auto-correct.
180
- # Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
181
- Style/AlignHash:
182
- Enabled: false
183
-
184
- # Offense count: 22
185
- # Cop supports --auto-correct.
186
- # Configuration parameters: EnforcedStyle, SupportedStyles.
187
- Style/AndOr:
188
- Enabled: false
189
-
190
- # Offense count: 1
191
- # Configuration parameters: EnforcedStyle, SupportedStyles.
192
- Style/ClassAndModuleChildren:
193
- Enabled: false
194
-
195
- # Offense count: 19
148
+ # We're not there yet
196
149
  Style/Documentation:
197
150
  Enabled: false
198
151
 
199
- # Offense count: 112
200
- # Cop supports --auto-correct.
201
- # Configuration parameters: EnforcedStyle, SupportedStyles.
202
- Style/DotPosition:
203
- Enabled: false
204
-
205
- # Offense count: 12
206
- # Cop supports --auto-correct.
207
- # Configuration parameters: EnforcedStyle, SupportedStyles.
208
- Style/EmptyLinesAroundClassBody:
209
- Enabled: false
210
-
211
- # Configuration parameters: MinBodyLength.
212
- Style/GuardClause:
213
- Enabled: false
214
-
215
- # Offense count: 4
216
- # Cop supports --auto-correct.
217
- # Configuration parameters: MaxLineLength.
218
- Style/IfUnlessModifier:
219
- Enabled: false
220
-
221
- # Offense count: 74
222
- # Cop supports --auto-correct.
223
- # Configuration parameters: EnforcedStyle, SupportedStyles.
224
- Style/MultilineOperationIndentation:
225
- Enabled: false
226
-
227
- # Offense count: 10
228
- # Cop supports --auto-correct.
229
- Style/NumericLiterals:
230
- MinDigits: 14
231
-
232
- # Offense count: 2
233
- # Cop supports --auto-correct.
234
- Style/PerlBackrefs:
235
- Enabled: false
236
-
237
- # Offense count: 19
238
- # Cop supports --auto-correct.
239
- # Configuration parameters: AllowMultipleReturnValues.
240
- Style/RedundantReturn:
241
- Enabled: false
242
-
243
- # Offense count: 77
244
- # Cop supports --auto-correct.
245
- Style/RedundantSelf:
246
- Enabled: false
247
-
248
- # Offense count: 38
249
- # Cop supports --auto-correct.
250
- # Configuration parameters: EnforcedStyle, SupportedStyles.
251
- Style/SignalException:
252
- Enabled: false
253
-
254
- # Offense count: 5
255
- # Cop supports --auto-correct.
256
- # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
257
- Style/SpaceInsideBlockBraces:
258
- Enabled: false
259
-
260
- # Offense count: 291
261
- # Cop supports --auto-correct.
262
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
263
- Style/SpaceInsideHashLiteralBraces:
264
- Enabled: false
265
-
266
- # Offense count: 8
267
- # Cop supports --auto-correct.
268
- Style/SpaceInsideParens:
269
- Enabled: false
270
-
271
- # Offense count: 881
272
- # Cop supports --auto-correct.
273
- # Configuration parameters: EnforcedStyle, SupportedStyles.
274
- Style/StringLiterals:
275
- Enabled: false
276
-
277
- # Offense count: 9
278
- # Cop supports --auto-correct.
279
- # Configuration parameters: WordRegex.
280
- Style/WordArray:
281
- MinSize: 19
282
-
283
152
  # Added after upgrade to 0.38.0
284
-
285
153
  Style/MutableConstant:
286
154
  Enabled: false
287
155
 
@@ -289,11 +157,6 @@ Style/MutableConstant:
289
157
  Style/ZeroLengthPredicate:
290
158
  Enabled: false
291
159
 
292
- Style/ConditionalAssignment:
293
- Enabled: false
294
-
295
- Style/SpaceAroundKeyword:
296
- Enabled: false
297
-
160
+ # Adds complexity
298
161
  Style/IfInsideElse:
299
- Enabled: false
162
+ Enabled: false