Sha256: c6c48cc0f1b2b07940da7abf20520f6d5aa3bee1a0ee62f42a167e69b48fcae1

Contents?: true

Size: 860 Bytes

Versions: 3

Compression:

Stored size: 860 Bytes

Contents

# frozen_string_literal: true

module Groundskeeper
  # Wraps an interface to GitHub.
  class GitHub
    attr_reader :opener, :username, :repository_name

    GITHUB_API_TOKEN = "GITHUB_API_TOKEN"
    COMMAND = "open"
    URL_BASE = "https://github.com/"

    def self.build(username:, repository_name:)
      new(
        opener: Executable.new(COMMAND),
        username: username,
        repository_name: repository_name
      )
    end

    def initialize(opener:, username:, repository_name:)
      @opener = opener
      @username = username
      @repository_name = repository_name
    end

    def open_pull_request_page(branch_name)
      url = "#{URL_BASE}#{username}/#{repository_name}/compare/" \
            "#{branch_name}?expand=1"

      opener.execute(url)
    end

    def credentials?
      ENV[GITHUB_API_TOKEN].present?
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
groundskeeper-bitcore-0.3.6 lib/groundskeeper/git_hub.rb
groundskeeper-bitcore-0.3.5 lib/groundskeeper/git_hub.rb
groundskeeper-bitcore-0.3.4 lib/groundskeeper/git_hub.rb