Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Include Page
Tempo for Server and Data Center Header
Tempo for Server and Data Center Header

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.

Code Block
languagejson
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
)