fastlane/lib/fastlane/actions/git_commit.rb in fastlane_hotfix-2.165.1 vs fastlane/lib/fastlane/actions/git_commit.rb in fastlane_hotfix-2.187.0
- old
+ new
@@ -1,19 +1,19 @@
module Fastlane
module Actions
class GitCommitAction < Action
def self.run(params)
- if params[:path].kind_of?(String)
- paths = params[:path].shellescape
- else
- paths = params[:path].map(&:shellescape).join(' ')
- end
+ paths = params[:path].map(&:shellescape).join(' ')
skip_git_hooks = params[:skip_git_hooks] ? '--no-verify' : ''
if params[:allow_nothing_to_commit]
- repo_clean = Actions.sh("git status --porcelain").empty?
+ # Here we check if the path passed in parameter contains any modification
+ # and we skip the `git commit` command if there is none.
+ # That means you can have other files modified that are not in the path parameter
+ # and still make use of allow_nothing_to_commit.
+ repo_clean = Actions.sh("git status #{paths} --porcelain").empty?
UI.success("Nothing to commit, working tree clean ✅.") if repo_clean
return if repo_clean
end
command = "git commit -m #{params[:message].shellescape} #{paths} #{skip_git_hooks}".strip
@@ -31,19 +31,21 @@
end
def self.available_options
[
FastlaneCore::ConfigItem.new(key: :path,
- description: "The file you want to commit",
- is_string: false),
+ description: "The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed",
+ type: Array),
FastlaneCore::ConfigItem.new(key: :message,
description: "The commit message that should be used"),
FastlaneCore::ConfigItem.new(key: :skip_git_hooks,
- description: "Set to true to pass --no-verify to git",
+ description: "Set to true to pass `--no-verify` to git",
+ default_value: false,
type: Boolean,
optional: true),
FastlaneCore::ConfigItem.new(key: :allow_nothing_to_commit,
- description: "Set to true to allow commit without any git changes",
+ description: "Set to true to allow commit without any git changes in the files you want to commit",
+ default_value: false,
type: Boolean,
optional: true)
]
end