diff --git a/Config.groovy b/Config.groovy index af6e0f8ac..6bf5c4fe7 100644 --- a/Config.groovy +++ b/Config.groovy @@ -104,5 +104,9 @@ confluence.with { // added // extraPageContent = 'This is a generated page, do not edit! extraPageContent = '' + + // Optional proxy configuration, only used to access Confluence + // schema supports http and https + // proxy = [host: 'my.proxy.com', port: 1234, schema: 'http'] } //end::confluenceConfig[] diff --git a/scripts/asciidoc2confluence.groovy b/scripts/asciidoc2confluence.groovy index f677de870..1fb19e4fc 100644 --- a/scripts/asciidoc2confluence.groovy +++ b/scripts/asciidoc2confluence.groovy @@ -116,6 +116,9 @@ def uploadAttachment = { def pageId, String url, String fileName, String note -> def api = new RESTClient(config.confluence.api) //this fixes the encoding api.encoderRegistry = new EncoderRegistry( charset: 'utf-8' ) + if (config.confluence.proxy) { + api.setProxy(config.confluence.proxy.host, config.confluence.proxy.port, config.confluence.proxy.schema ?: 'http') + } def headers = [ 'Authorization': 'Basic ' + config.confluence.credentials, @@ -138,6 +141,9 @@ def uploadAttachment = { def pageId, String url, String fileName, String note -> } } else { http = new HTTPBuilder(config.confluence.api + 'content/' + pageId + '/child/attachment') + if (config.confluence.proxy) { + http.setProxy(config.confluence.proxy.host, config.confluence.proxy.port, config.confluence.proxy.schema ?: 'http') + } } if (http) { http.request(Method.POST) { req -> @@ -316,7 +322,7 @@ def parseBody = { body, anchors, pageAnchors -> if(!src.startsWith("http")) { def newUrl = baseUrl.toString().replaceAll('\\\\','/').replaceAll('/[^/]*$','/')+src def fileName = java.net.URLDecoder.decode((src.tokenize('/')[-1]),"UTF-8") - newUrl = java.net.URLDecoder.decode(newUrl,"UTF-8") + newUrl = java.net.URLDecoder.decode(newUrl,"UTF-8") trythis { deferredUpload << [0,newUrl,fileName,"automatically uploaded"] @@ -356,6 +362,9 @@ def pushToConfluence = { pageTitle, pageBody, parentId, anchors, pageAnchors -> ] //this fixes the encoding api.encoderRegistry = new EncoderRegistry( charset: 'utf-8' ) + if (config.confluence.proxy) { + api.setProxy(config.confluence.proxy.host, config.confluence.proxy.port, config.confluence.proxy.schema ?: 'http') + } //try to get an existing page localPage = parseBody(pageBody, anchors, pageAnchors) diff --git a/src/docs/manual/03_task_publishToConfluence.adoc b/src/docs/manual/03_task_publishToConfluence.adoc index 5f0610362..d7c18d8b4 100755 --- a/src/docs/manual/03_task_publishToConfluence.adoc +++ b/src/docs/manual/03_task_publishToConfluence.adoc @@ -39,6 +39,9 @@ e.g. you can do things like `credentials = "user:${new File("/home/me/apitoken") extraPageContent:: If you need to prefix you pages with a warning that this is generated content - this is the right place. +proxy:: +If you need to provide a proxy to access Confluence, you may set a map with keys `host` (e.g. `'my.proxy.com'`), `port` (e.g. `'1234'`) and `schema` (e.g. `'http'`) of your proxy. + .configuration .publishToConfluence.gradle [source,groovy]