Developer Portal for YouTrack and Hub Help

Article

Represents an article in YouTrack.

Extends BaseArticle.

Available since 2021.4.23500

Properties

Name

Type

Description

attachments

Set.<BaseArticleAttachment>

Read-only.  The set of attachments that are attached to the article.

author

User

Read-only.  The user who created the article.

becomesRemoved

Boolean

Read-only.  When `true`, the entity is removed in the current transaction. Otherwise, `false`. This property can become `true` only in on-change rules when the rule is triggered on the removal of an issue or an article. In the rule code, the `runOn` rule property must contain the `removal` parameter set to `true`.

Available since 2017.4.37915

runOn: {removal: true}

comments

Set.<ArticleComment>

Read-only.  A list of comments for the article.

content

String

The text that is entered as the article content.

created

Number

Read-only.  The date when the article was created.

editedComments

Set.<ArticleComment>

Read-only.  The set of comments that are edited in the current transaction. Comments that are added and removed are not considered to be edited. Instead, these are represented by the `article.comments.added` and `article.comments.removed` properties.

id

String

Read-only.  The article ID.

isNew

Boolean

Read-only.  When `true`, the entity is created in the current transaction. Otherwise, `false`.

Available since 2018.2.42351

isStarred

Boolean

Read-only.  If the current user has added the 'Star' tag to watch the article, this property is `true`.

Available since 2023.1

numberInProject

Number

Read-only.  The article number in the project.

pinnedComments

Set.<ArticleComment>

Read-only.  The set of comments that are pinned in the article.

Available since 2024.1

project

Project

The project to which the article is assigned.

summary

String

The article title.

tags

Set.<Tag>

The list of tags that are attached to the article.

Available since 2023.1

updated

Number

Read-only.  The date when the article was last updated.

updatedBy

User

Read-only.  The user who last updated the article.

Constructors

Article

Article(author, project, summary)

Available since 2021.4.23500

Parameters

Name

Type

Description

author

User, JsonForArticleConstructor

The author of the article. Alternatively, pass a JSON specified by JsonForArticleConstructor

project

Project

The project where the new article is created.

summary

String

The article title.

 

Methods

action

static action(ruleProperties, ruleProperties.title, ruleProperties.userInput, ruleProperties.userInput.type, ruleProperties.userInput.description, ruleProperties.guard, ruleProperties.action, ruleProperties.requirements)

Creates a declaration of a rule that a user can apply to an article using a menu option. The object that is returned by this method is normally exported to the `rule` property, otherwise it is not treated as a rule.

Parameters

Name

Type

Description

ruleProperties

Object

A JSON object that defines the properties for the rule.

ruleProperties.title

string

The human-readable name of the rule. Displayed in the administrative UI in YouTrack.

ruleProperties.userInput

Object

An object that defines the properties for information that will be requested from the user who triggers the action rule.

ruleProperties.userInput.type

string, Object

The data type for the value that is requested from the user. The following types are supported: * entities.Field.dateTimeType * entities.Field.dateType * entities.Field.integerType * entities.Field.floatType * entities.Field.periodType * entities.Field.stringType * entities.Build * entities.EnumField * entities.Issue * entities.IssueTag * entities.OwnedField * entities.Project * entities.ProjectVersion * entities.UserGroup * entities.User

ruleProperties.userInput.description

string

The label for the control that is used to collect additional information from the user.

ruleProperties.guard

Article~guardFunction

A function that is invoked to determine whether the action is applicable to an article.

ruleProperties.action

Article~actionFunction

The function that is invoked when a user triggers this action.

ruleProperties.requirements

Requirements

The set of entities that must be present for the script to work as expected.

Return Value

Type

Description

Object

The object representation of the rule.

Example

var entities = require('@jetbrains/youtrack-scripting-api/entities'); exports.rule = entities.Article.action({ title: 'Log article comments', guard: function(ctx) { return ctx.article.comments.isEmpty(); }, action: function(ctx) { ctx.article.comments.forEach(function(comment) { console.log(comment.text); }); } });

 

findById

static findById(id)

Finds an article by its visible ID.

Parameters

Name

Type

Description

id

String

The article ID.

Return Value

Type

Description

Article

The article that is assigned the specified ID.

 

onChange

static onChange(ruleProperties, ruleProperties.title, ruleProperties.guard, ruleProperties.action, ruleProperties.requirements, ruleProperties.runOn, ruleProperties.runOn.change, ruleProperties.runOn.removal)

Creates a declaration of a rule that is triggered when a change is applied to an article. The object that is returned by this method is normally exported to the `rule` property, otherwise it is not treated as a rule.

Parameters

Name

Type

Description

ruleProperties

Object

A JSON object that defines the properties for the rule.

ruleProperties.title

string

The human-readable name of the rule. Displayed in the administrative UI in YouTrack.

ruleProperties.guard

Article~guardFunction

A function that determines the conditions for executing the rule. If the guard condition is not met, the action specified in the rule is not applied to the article.

ruleProperties.action

Article~actionFunction

The function that is invoked on an article change.

ruleProperties.requirements

Requirements

The set of entities that must be present for the script to work as expected.

ruleProperties.runOn

Object

Determines which article events trigger the on-change rule. When not specified, the rule is triggered on an article change.

ruleProperties.runOn.change

boolean

When `true`, the rule is triggered on an article change.

ruleProperties.runOn.removal

boolean

When `true`, the rule is triggered when an article is logically deleted.

Return Value

Type

Description

Object

The object representation of the rule.

Example

var entities = require('@jetbrains/youtrack-scripting-api/entities'); exports.rule = entities.Article.onChange({ title: 'On article change, log its ID', action: function(ctx) { console.log(ctx.article.id); } });

 

addComment

addComment(text, author)

Adds a comment to the article.

Parameters

Name

Type

Description

text

String, JsonForArticleAddComment

The text to add to the article as a comment. Alternatively, pass a JSON specified by JsonForArticleAddComment

author

User

The author of the comment.

Return Value

Type

Description

ArticleComment

A newly created comment.

 

addTag

addTag(name)

Adds a tag with the specified name to an article. YouTrack adds the first matching tag that is visible to the current user. If a match is not found, a new private tag is created for the current user.

Available since 2023.1

Parameters

Name

Type

Description

name

String

The name of the tag to add to the article.

Return Value

Type

Description

Tag

The tag that has been added to the article.

Example

article.addTag('review');

 

becomes

becomes(fieldName, expected)

Checks whether a field is set to an expected value in the current transaction.

Parameters

Name

Type

Description

fieldName

string

The name of the field to check.

expected

string

The expected value.

Return Value

Type

Description

boolean

If the field is set to the expected value, returns `true`.

 

canBeReadBy

canBeReadBy(fieldName, user)

Checks whether a user has permission to read the field.

Parameters

Name

Type

Description

fieldName

string

The name of the field.

user

User

The user for whom the permission to read the field is checked.

Return Value

Type

Description

boolean

If the user can read the field, returns `true`.

 

canBeWrittenBy

canBeWrittenBy(fieldName, user)

Checks whether a user has permission to update the field.

Parameters

Name

Type

Description

fieldName

string

The name of the field.

user

User

The user for whom the permission to update the field is checked.

Return Value

Type

Description

boolean

If the user can update the field, returns `true`.

 

hasTag

hasTag(tagName)

Checks whether the specified tag is attached to the article.

Available since 2023.1

Parameters

Name

Type

Description

tagName

String

The name of the tag to check for the article.

Return Value

Type

Description

Boolean

If the specified tag is attached to the article, returns `true`.

 

is

is(fieldName, expected)

Checks whether a field is equal to an expected value.

Available since 2019.2.55603

Parameters

Name

Type

Description

fieldName

string

The name of the field to check.

expected

string

The expected value.

Return Value

Type

Description

boolean

If the field is equal to the expected value, returns `true`.

 

isChanged

isChanged(fieldName)

Checks whether the value of a field is changed in the current transaction.

Parameters

Name

Type

Description

fieldName

string

The name of the field to check.

Return Value

Type

Description

boolean

If the value of the field is changed in the current transaction, returns `true`.

 

oldValue

oldValue(fieldName)

Returns the previous value of a single-value field before an update was applied. If the field is not changed in the transaction, returns null.

Parameters

Name

Type

Description

fieldName

string

The name of the field.

Return Value

Type

Description

Object

If the field is changed in the current transaction, the previous value of the field. Otherwise, null.

 

removeTag

removeTag(name)

Removes a tag with the specified name from an article. If the specified tag is not attached to the article, nothing happens. This method first searches through tags owned by the current user, then through all other visible tags.

Available since 2023.1

Parameters

Name

Type

Description

name

String

The name of the tag to remove from the article.

Return Value

Type

Description

Tag

The tag that has been removed from the article.

Example

article.removeTag('waiting for review');

 

required

required(fieldName, message)

Asserts that a value is set for a field. If a value for the required field is not set, the specified message is displayed in the user interface.

Parameters

Name

Type

Description

fieldName

string

The name of the field to check.

message

string

The message that is displayed to the user that describes the field requirement.

 

was

was(fieldName, expected)

Checks whether a field was equal to an expected value prior to the current transaction.

Available since 2019.2.55603

Parameters

Name

Type

Description

fieldName

string

The name of the field to check.

expected

string

The expected value.

Return Value

Type

Description

boolean

If the field was equal to the expected value, returns `true`.

 

Last modified: 19 June 2024