Sha256: a431e301537dd465ca8e66cc93cb6ac1ce573f6d5462086a6c6c07a2ff5b62eb

Contents?: true

Size: 969 Bytes

Versions: 53

Compression:

Stored size: 969 Bytes

Contents

module KnapsackPro
  module Crypto
    class BranchEncryptor
      NON_ENCRYPTABLE_BRANCHES = [
        'master',
        'main',
        'develop',
        'development',
        'dev',
        'staging',
        'production',
        # GitHub Actions has branch names starting with refs/heads/
        'refs/heads/master',
        'refs/heads/main',
        'refs/heads/develop',
        'refs/heads/development',
        'refs/heads/dev',
        'refs/heads/staging',
        'refs/heads/production',
      ]

      def self.call(branch)
        if KnapsackPro::Config::Env.branch_encrypted?
          new(branch).call
        else
          branch
        end
      end

      def initialize(branch)
        @branch = branch
      end

      def call
        if NON_ENCRYPTABLE_BRANCHES.include?(branch)
          branch
        else
          Digestor.salt_hexdigest(branch)[0..6]
        end
      end

      private

      attr_reader :branch
    end
  end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
knapsack_pro-5.5.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.4.1 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.4.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.3.5 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.3.4 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.3.3 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.3.2 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.3.1 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.3.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.2.1 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.2.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.1.2 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.1.1 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.1.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-5.0.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-4.1.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-4.0.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-3.11.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-3.10.0 lib/knapsack_pro/crypto/branch_encryptor.rb
knapsack_pro-3.9.0 lib/knapsack_pro/crypto/branch_encryptor.rb