$customHeader
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Unable to render {include} The included page could not be found.

The script will create a worklog using the REST API. You might also refer to our REST API documentation. Using the REST APIs is better way to interact with Tempo since you donĀ“t need to bother about packages to import nor need to be worried about deprecations and additionally you will find them documented.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.properties.APKeys
import groovyx.net.http.ContentType
import groovyx.net.http.HttpResponseDecorator
import groovyx.net.http.RESTClient
import groovyx.net.http.URIBuilder

// the user-defined property where the user name and password are stored into
def baseUrl = ComponentAccessor.applicationProperties.getString(APKeys.JIRA_BASEURL)
def credentials = "username:password"

def data = [
    attributes :  [
        _Account_ : [
            value: "201403"
        ],
        _Mileage_: [
            value: "12"
        ],
        _WorklogCategory_: [
            value:  "Bugfixing" 
        ],
        _Team_: [
            value: "6"
        ]
    ],
    billableSeconds: "7200",
    worker: "john",
    comment: "worked on some stuff",
    started: "2019-12-05T13:00:00.000",
    timeSpentSeconds: 7200,
    originTaskId: "11290",
    remainingEstimate: 36000
]

def client = new RESTClient(baseUrl)
client.setHeaders([
    Authorization      : "Basic " + credentials.bytes.encodeBase64().toString(),
    "X-Atlassian-Token": "no-check"
])

client.handler.success = {
    log.debug "Worklog successfully created"
}

client.handler.failure = { HttpResponseDecorator response ->
    log.error response.entity.content.text
}

client.post(
    path: new URIBuilder("$baseUrl/rest/tempo-timesheets/4/worklogs/"),
    contentType: ContentType.JSON,
    body: data
)
  • No labels