Sha256: dc66929d438cb1d708af23ea7aa4af89b15ed4e101f7b7abffabbbe20696784c

Contents?: true

Size: 910 Bytes

Versions: 1

Compression:

Stored size: 910 Bytes

Contents

require "octokit"

module Codestatus
  class PackageRepository
    class GitHubRepository
      def initialize(slug)
        # 'influitive/apartment'
        @repo = slug
      end

      def status
        status_of_default_branch
      end

      private

      # combined status on github
      # https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref
      def status_of_default_branch
        response = client.combined_status(@repo, default_branch)

        BuildStatus.new(sha: response.sha, status: response.state)
      end

      def default_branch
        repository['default_branch']
      end

      def repository
        @repository ||= client.repository(@repo)
      end

      def client
        @client ||= Octokit::Client.new(access_token: access_token)
      end

      def access_token
        ENV['CODESTATUS_GITHUB_TOKEN']
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
codestatus-0.1.1 lib/codestatus/package_repository/github_repository.rb