Sha256: 54982b2f2471d52f58d67caaf7e6fc2d1cf784e2aa0d4785a60f3bcfa165263c

Contents?: true

Size: 1.38 KB

Versions: 5

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require "open3"

module Git
  module Lint
    module Branches
      module Environments
        # Provides Travis CI build environment feature branch information.
        class TravisCI
          def initialize repository: GitPlus::Repository.new, shell: Open3, environment: ENV
            @repository = repository
            @shell = shell
            @environment = environment
          end

          def name = pull_request_branch.empty? ? ci_branch : pull_request_branch

          def commits
            prepare_project
            repository.commits "origin/#{repository.branch_default}..#{name}"
          end

          private

          attr_reader :environment, :repository, :shell

          def prepare_project
            slug = pull_request_slug

            unless slug.empty?
              shell.capture3 "git remote add -f original_branch https://github.com/#{slug}.git"
              shell.capture3 "git fetch original_branch #{name}:#{name}"
            end

            shell.capture3 "git remote set-branches --add origin #{repository.branch_default}"
            shell.capture3 "git fetch"
          end

          def ci_branch = environment["TRAVIS_BRANCH"]

          def pull_request_branch = environment["TRAVIS_PULL_REQUEST_BRANCH"]

          def pull_request_slug = environment["TRAVIS_PULL_REQUEST_SLUG"]
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
git-lint-2.4.0 lib/git/lint/branches/environments/travis_ci.rb
git-lint-2.3.3 lib/git/lint/branches/environments/travis_ci.rb
git-lint-2.3.2 lib/git/lint/branches/environments/travis_ci.rb
git-lint-2.3.1 lib/git/lint/branches/environments/travis_ci.rb
git-lint-2.3.0 lib/git/lint/branches/environments/travis_ci.rb