Timetracker version 4.7.5 or higher is required to access this API

JIRA Administrators or JIRA System Administrators permission required for the user this service

Timetracker worklog attributes can be managed via this Service:

API

package org.everit.jira.reporting.service.attribute;

import java.util.List;

/**
 * Public Worklog Attribute Service.
 */
public interface WorklogAttributeService {

  /**
   * Delete worklog attribute. Requires System Administrator or Administrator jira permission.
   *
   * @param worklogAttributeName
   *          the name of the worklog attribute.
   */
  void deleteWorklogAttribute(final String worklogAttributeName);

  /**
   * List enabled worklog attribute names. Requires System Administrator or Administrator jira
   * permission, else returns an empty list. Disabled attirbutes won't be returned.
   */
  List<String> listWorklogAttributes();

  /**
   * Create or Update worklog attribute names. Requires System Administrator or Administrator jira permission. 
   *
   * @param worklogAttributeNames
   *          the worklog attribute names.
   */
  void updateWorklogAttributes(final List<String> worklogAttributeNames);
}

Example

import com.onresolve.scriptrunner.runner.customisers.PluginModule;
import com.onresolve.scriptrunner.runner.customisers.WithPlugin;
import org.everit.jira.reporting.service.attribute.WorklogAttributeService;
import java.util.Arrays;
import java.util.List;


@WithPlugin("org.everit.jira.timetracker.plugin")

@PluginModule
WorklogAttributeService worklogAttributeService;

// list worklog attributes (only enabled attributes will be returned)
List<String> worklogAttributes = worklogAttributeService.listWorklogAttributes();
// log.info(worklogAttributes);

// add worklog attributes
worklogAttributeService.updateWorklogAttributes(Arrays.asList("billable", "not-billable"));
worklogAttributes = worklogAttributeService.listWorklogAttributes();
// log.info(worklogAttributes);

// delete worklog attribute
worklogAttributeService.deleteWorklogAttribute("billable");
worklogAttributes = worklogAttributeService.listWorklogAttributes();
// log.info(worklogAttributes);

// delete worklog attribute
worklogAttributeService.deleteWorklogAttribute("not-billable");
worklogAttributes = worklogAttributeService.listWorklogAttributes();
// log.info(worklogAttributes);