Module: ActiveProject::Adapters::GithubRepo::Connection

Included in:
ActiveProject::Adapters::GithubRepoAdapter
Defined in:
lib/active_project/adapters/github_repo/connection.rb

Constant Summary collapse

BASE_URL =
"https://api.github.com"

Instance Method Summary collapse

Instance Method Details

#initialize(config:) ⇒ Object

Initializes the GitHub Repo Adapter.

Parameters:

Raises:

  • (ArgumentError)

    if required configuration options (:owner, :repo, :access_token) are missing.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/active_project/adapters/github_repo/connection.rb', line 13

def initialize(config:)
  unless config.is_a?(ActiveProject::Configurations::BaseAdapterConfiguration)
    raise ArgumentError, "GithubRepoAdapter requires a BaseAdapterConfiguration object"
  end

  @config = config

  # Extract required configuration parameters
  owner = @config.options[:owner]
  repo = @config.options[:repo]
  access_token = @config.options[:access_token]

  # Validate required configuration parameters
  unless owner && !owner.empty?
    raise ArgumentError, "GithubRepoAdapter configuration requires :owner"
  end

  unless repo && !repo.empty?
    raise ArgumentError, "GithubRepoAdapter configuration requires :repo"
  end

  unless access_token && !access_token.empty?
    raise ArgumentError, "GithubRepoAdapter configuration requires :access_token"
  end

  # Set repository path for API requests
  @repo_path = "repos/#{owner}/#{repo}"
  @connection = initialize_connection
end