Sha256: 31d540be1b7cde8c5a4570c3eeeafed6e704239cf276ef33a1b6e05666ae7403

Contents?: true

Size: 1.87 KB

Versions: 180

Compression:

Stored size: 1.87 KB

Contents

require_relative 'module'
require_relative 'encrypt'
require_relative 'git_helper'

module Match
  # These functions should only be used while in (UI.) interactive mode
  class ChangePassword
    def self.update(params: nil, from: nil, to: nil)
      ensure_ui_interactive
      to ||= ChangePassword.ask_password(message: "New passphrase for Git Repo: ", confirm: false)
      from ||= ChangePassword.ask_password(message: "Old passphrase for Git Repo: ", confirm: true)
      GitHelper.clear_changes
      workspace = GitHelper.clone(params[:git_url],
                                  params[:shallow_clone],
                                  manual_password: from,
                                  skip_docs: params[:skip_docs],
                                  branch: params[:git_branch],
                                  git_full_name: params[:git_full_name],
                                  git_user_email: params[:git_user_email],
                                  clone_branch_directly: params[:clone_branch_directly])
      Encrypt.new.clear_password(params[:git_url])
      Encrypt.new.store_password(params[:git_url], to)

      message = "[fastlane] Changed passphrase"
      GitHelper.commit_changes(workspace, message, params[:git_url], params[:git_branch])
    end

    def self.ask_password(message: "Passphrase for Git Repo: ", confirm: true)
      ensure_ui_interactive
      loop do
        password = UI.password(message)
        if confirm
          password2 = UI.password("Type passphrase again: ")
          if password == password2
            return password
          end
        else
          return password
        end
        UI.error("Passphrases differ. Try again")
      end
    end

    def self.ensure_ui_interactive
      raise "This code should only run in interactive mode" unless UI.interactive?
    end

    private_class_method :ensure_ui_interactive
  end
end

Version data entries

180 entries across 180 versions & 1 rubygems

Version Path
fastlane-2.105.2 match/lib/match/change_password.rb
fastlane-2.105.1 match/lib/match/change_password.rb
fastlane-2.104.0 match/lib/match/change_password.rb
fastlane-2.103.1 match/lib/match/change_password.rb
fastlane-2.103.0 match/lib/match/change_password.rb
fastlane-2.102.0 match/lib/match/change_password.rb
fastlane-2.101.1 match/lib/match/change_password.rb
fastlane-2.101.0 match/lib/match/change_password.rb
fastlane-2.100.1 match/lib/match/change_password.rb
fastlane-2.100.0 match/lib/match/change_password.rb
fastlane-2.99.1 match/lib/match/change_password.rb
fastlane-2.99.0 match/lib/match/change_password.rb
fastlane-2.98.0 match/lib/match/change_password.rb
fastlane-2.97.0 match/lib/match/change_password.rb
fastlane-2.96.1 match/lib/match/change_password.rb
fastlane-2.96.0 match/lib/match/change_password.rb
fastlane-2.96.0.beta.20180521050117 match/lib/match/change_password.rb
fastlane-2.96.0.beta.20180520050019 match/lib/match/change_password.rb
fastlane-2.96.0.beta.20180519050103 match/lib/match/change_password.rb
fastlane-2.96.0.beta.20180518050116 match/lib/match/change_password.rb