Class: Lazylead::Confluence
- Inherits:
-
Object
- Object
- Lazylead::Confluence
- Defined in:
- lib/lazylead/confluence.rb
Overview
Represents single Confluence instance.
- Author
-
Yurii Dubinka ([email protected])
- Copyright
-
Copyright © 2019-2020 Yurii Dubinka
- License
-
MIT
Instance Method Summary collapse
-
#fetch_page_id(space, title) ⇒ Object
Fetch the page url with pageId (Atlassian global id) using confluence space name and page title.
-
#initialize(conf) ⇒ Confluence
constructor
A new instance of Confluence.
-
#make_link(url, type = "Wiki Page") ⇒ Object
Construct the remote link from Jira ticket to Confluence page.
-
#url ⇒ Object
Confluence instance url like confluence.com confluence.com.
Constructor Details
#initialize(conf) ⇒ Confluence
Returns a new instance of Confluence.
35 36 37 38 39 |
# File 'lib/lazylead/confluence.rb', line 35 def initialize(conf) @conf = conf @http = Faraday.new(url: @conf.url) @http.basic_auth(@conf.user, @conf.pass) end |
Instance Method Details
#fetch_page_id(space, title) ⇒ Object
TODO:
#/DEV Unable to find confluence pages where title has “:” symbol. The symbol “:” might be replaced by “%3A”. The search needs to consider this case as well.
Fetch the page url with pageId (Atlassian global id)
using confluence space name and page title.
72 73 74 75 76 77 78 79 80 81 |
# File 'lib/lazylead/confluence.rb', line 72 def fetch_page_id(space, title) resp = @http.get( "/rest/api/content", limit: 1, spaceKey: space, title: title ).body return "" if resp.blank? pages = JSON.parse(resp) return "" if pages["results"].empty? "#{@conf.url}/pages/viewpage.action?"\ "pageId=#{pages['results'].first['id']}" end |
#make_link(url, type = "Wiki Page") ⇒ Object
Construct the remote link from Jira ticket to Confluence page. Read more:
- https://bit.ly/2zkfTwB
- https://bit.ly/2zk8iOB
- https://bit.ly/3bkGkiU
53 54 55 56 57 58 59 60 |
# File 'lib/lazylead/confluence.rb', line 53 def make_link(url, type = "Wiki Page") { globalId: "appId=#{@conf.app}&pageId=#{url[/pageId=(?<id>\d+)/, 1]}", application: { type: @conf.type, name: @conf.name }, relationship: type, object: { url: url, title: type } } end |
#url ⇒ Object
Confluence instance url like
http://confluence.com
https://confluence.com
44 45 46 |
# File 'lib/lazylead/confluence.rb', line 44 def url @conf.url end |