YouTrack Standalone 2020.3 Help

entities

Contains definitions for the entities in YouTrack that are accessible to workflows.

Types

This module supports the following object types:

Type

Description

AbstractVcsItem

Represents VCS-related items such as commits and pull requests.

Agile

Represents an agile board and the set of sprints that belong to the board.

BaseComment

The base class for issue comment.

BaseEntity

The common ancestor for all entity types.

BaseWorkItem

The base class for issue work items.

Build

Represents a value that is stored in a custom field that stores a build type.

BundleProjectCustomField

Represents a custom field in a project that stores an predefined set of values.

ChangesProcessor

An entity that retrieves VCS changes and creates their representation in YouTrack.

EnumField

Represents a value in a custom field that stores a predefined set of values.

Field

Represents a value that is stored in a custom field. The custom fields themselves are represented by the Fields class.

Fields

Represents the custom fields that are used in an issue. The actual set of custom fields that are used for each issue is configured on a per-project basis. The properties shown here correspond with the default custom fields in YouTrack. Additional custom fields that have been attached to a project are also available.

GroupProjectCustomField

Represents a custom field in a project that stores a UserGroup type.

Issue

Represents an issue in YouTrack.

IssueAttachment

Represents a file that is attached to an issue.

IssueComment

Represents a comment that is added to an issue.

IssueFolder

TODO class documentation missing

IssueLinkPrototype

Represents an issue link type.

IssueTag

Represents a tag.

IssueWorkItem

Represents a work item that has been added to an issue.

Iterator

An object that enables traversal through the elements in a collection.

JsonForIssueAddAttachment
JsonForIssueAddComment
JsonForIssueAddWorkItem
JsonForIssueConstructor
JsonForUserNotify
OwnedField

Represents a value in a custom field that has a user associated with it, a so-called owner.

PeriodProjectCustomField

Represents a custom field in a project that stores a value as a period type. We use org.joda.time.Period as a base class for period values. While you can read the class documentation at http://joda-time.sourceforge.net/apidocs/org/joda/time/Period.html, please note that we support only class members which use the Period class and primitive types like String and int.

PersistentFile

Represents the common ancestor for all persistent files that are available in YouTrack.

Project

Represents a YouTrack project.

ProjectCustomField

Represents a custom field that is available in a project.

ProjectVersion

Represents a value in a custom field that stores a version type.

PullRequest

Represents a pull or merge request that is attached to an issue.

PullRequestState

Represents a pull request state.

Requirement

A single element in a set of Requirements

Requirements

The `Requirements` object serves two purposes. First, it functions as a safety net. It specifies the set of entities that must exist for a rule to work as expected. Whenever one or more rule requirements are not met, corresponding errors are shown in the workflow administration UI. The rule is not executed until all of the problems are fixed. Second, it functions as a reference. Each entity in the requirements is plugged into the `context` object, so you can reference entities from inside your context-dependent functions (like an `action` function). There are two types of requirements: project-wide and system-wide. Project-wide requirements contain a list of custom fields that must be attached to each project that uses the rule as well as the required values from the sets of values for each custom field. System-wide requirements contain a list of other entities that must be available in YouTrack. This includes users, groups, projects, issues, tags, saved searches, and issue link types.

SavedQuery

Represents a saved search.

Set

The `Set` object stores unique values of any type, whether primitive values or object references. The Set is used as storage for all multi-value objects in this API: custom fields that store multiple values, issue links, issues in a project, and so on. You can access single values in the collection directly (see first(), last(), get(index)), use an iterator (see entries(), values()), or traverse with forEach(visitor) and find(predicate) methods. The workflow API is based on ECMAScript 5.1. This Set implementation mimics the functionality supported by the ES 6 Set interface.

SimpleProjectCustomField

Base class for custom fields that store simple values like strings and numbers.

Sprint

Represents a sprint that is associated with an agile board. Each sprint can include issues from one or more projects.

State

Represents a value in a custom field that stores a state type.

TextProjectCustomField

Represents a custom field that stores a string of characters as text. When displayed in an issue, the text is shown as formatted in Markdown.

User

Represents a user account in YouTrack.

UserGroup

Represents a group of users.

UserProjectCustomField

Represents a custom field in a project that stores values as a user type.

VcsChange

Represents a commit that is attached to an issue.

VcsServer

Represents a VCS server.

WatchFolder

Represents a common ancestor of classes that represent tags and saved searches.

WorkItemType

Represents a work type that can be assigned to a work item.

Functions


actionFunction

actionFunction(ctx, ctx.issue, ctx.currentUser, ctx.isSilentOperation)

This function is called by different events depending on the rule type: when a change is applied to an issue (on-change rules), when a command is executed (action rules), or according to a predefined schedule (scheduled rules). This function is called separately for each related issue.

Parameters

Name

Type

Description

ctx

Object

The execution context. Along with the parameters listed below, the context also contains objects that you describe in the Requirements.

ctx.issue

Issue

The current issue.

ctx.currentUser

User

The user who executes the rule.

ctx.isSilentOperation

Boolean

When `true`, the rule is triggered in reaction to a command that is applied without notification. When `false`, the rule is triggered in reaction to a command that is applied normally. Available since 2017.4.38771.

Example

action: function(ctx) { console.log('Action for issue ' + ctx.issue.id); }

 

guardFunction

guardFunction(ctx, ctx.issue, ctx.currentUser)

This function is called to determine whether an action function can be applied to an issue. Guard functions are used in on-change rules, action rules, and in transitions between values of a state-machine rule. On-schedule rules also support guard functions, but this rule type includes a `search` property that has a similar purpose.

Parameters

Name

Type

Description

ctx

Object

The execution context. Along with the parameters listed below, the context also contains objects that you describe as Requirements.

ctx.issue

Issue

The current issue.

ctx.currentUser

User

The user who executes the rule.

Example

guard: function(ctx) { return ctx.issue.State.isResolved; }

 

Last modified: 28 October 2020