Module: ActiveProject::Adapters::Jira::Connection

Includes:
Connections::Rest
Included in:
ActiveProject::Adapters::JiraAdapter
Defined in:
lib/active_project/adapters/jira/connection.rb

Overview

Low-level HTTP concerns for JiraAdapter

Constant Summary collapse

SERAPH_HEADER =
"x-seraph-loginreason"

Constants included from Connections::HttpClient

Connections::HttpClient::DEFAULT_HEADERS, Connections::HttpClient::DEFAULT_RETRY_OPTS

Instance Attribute Summary

Attributes included from Connections::HttpClient

#connection, #last_response

Instance Method Summary collapse

Methods included from Connections::Rest

#init_rest, #request_rest

Methods included from Connections::Pagination

#each_edge, #each_page

Methods included from Connections::HttpClient

#build_connection, #request

Methods included from Connections::Base

#parse_link_header

Instance Method Details

#initialize(config:) ⇒ Object

Parameters:

Raises:

  • (ArgumentError)

    if required keys are missing.



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

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

  super(config: config)

  # --- Build an absolute base URL ------------------------------------
  raw_url = @config.options.fetch(:site_url)
  site_url = raw_url =~ %r{\Ahttps?://}i ? raw_url.dup : +"https://#{raw_url}"
  site_url.chomp!("/")

  username = @config.options.fetch(:username)
  api_token = @config.options.fetch(:api_token)

  init_rest(
    base_url: site_url,
    auth_middleware: lambda do |conn|
      # Faraday’s built-in basic-auth helper                               :contentReference[oaicite:0]{index=0}
      conn.request :authorization, :basic, username, api_token
    end
  )
end