Sha256: 14c4acc1e008a10a64f1de1fbe91374acc4237b566560d383231c5b0fe0a7031

Contents?: true

Size: 945 Bytes

Versions: 1

Compression:

Stored size: 945 Bytes

Contents

# frozen_string_literal: true

module AddToOrg
  module Helpers
    # query api for the user's verified emails
    def verified_emails
      emails = client.emails accept: 'application/vnd.github.v3'
      emails.select(&:verified)
    end

    def valid?
      AddToOrg.validator.call(github_user, verified_emails, client)
    end

    private

    # user client
    def client
      @client ||= Octokit::Client.new access_token: github_user.token
    end

    # org admin client
    def sudo_client
      @sudo_client ||= Octokit::Client.new access_token: ENV['GITHUB_TOKEN']
    end

    # true if user is already a member of the org
    def member?
      client.organization_member? org_id, github_user.login
    end

    def team_id
      ENV['GITHUB_TEAM_ID']
    end

    def org_id
      ENV['GITHUB_ORG_ID']
    end

    # the main event...
    def add
      sudo_client.add_team_membership team_id, github_user.login
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
add-to-org-3.0.3 lib/add-to-org/helpers.rb