# Tag

Represents a tag.

Extends [WatchFolder](v1-WatchFolder.html).

## Properties

| Name | Type | Description |
| --- | --- | --- |
| 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      ```JAVASCRIPT runOn: {removal: true} ```    |
| extensionProperties |  Object  |  The object containing extension properties for this entity and their values. Extension properties are custom properties that might be added to core YouTrack entities by an app. For details about extension properties, see [Extension Properties](apps-extension-properties.html).             Available since 2024.3      ```JAVASCRIPT const entities = require('@jetbrains/youtrack-scripting-api/entities');  exports.rule = entities.Issue.action({     command: 'test',     action: function (ctx) {         const printValues = () => {             return 'stringProp:' + ctx.issue.extensionProperties.stringProp + ';'                 + 'integerProp:' + ctx.issue.extensionProperties.integerProp + ';'                 + 'booleanProp:' + ctx.issue.extensionProperties.booleanProp + ';'                 + 'issueProp:' + ctx.issue.extensionProperties.issueProp?.id + ';'                 + 'issuesProp:' + ctx.issue.extensionProperties.issuesProp?.first()?.id + ';'         }         ctx.issue.addComment(printValues());     } }); ```    |
| isNew |  Boolean  | Read-only.  When `true`, the entity is created in the current transaction. Otherwise, `false`.             Available since 2018.2.42351    |
| name |  String  | Read-only.  The name of the tag.   |
| owner |  [User](v1-User.html)  | Read-only.  The user who created the tag.   |
| permittedReadUserGroups |  [Set](v1-Set.html).<[UserGroup](v1-UserGroup.html)>  | Read-only.  The groups of users for whom the tag or saved search is visible.   |
| permittedReadUsers |  [Set](v1-Set.html).<[User](v1-User.html)>  | Read-only.  The users for whom the tag or saved search is visible.   |
| permittedTagUserGroups |  [Set](v1-Set.html).<[UserGroup](v1-UserGroup.html)>  | Read-only.  The groups of users who can apply the tag.             Available since 2022.1    |
| permittedTagUsers |  [Set](v1-Set.html).<[User](v1-User.html)>  | Read-only.  The users who can apply the tag.             Available since 2022.1    |
| permittedUpdateUserGroups |  [Set](v1-Set.html).<[UserGroup](v1-UserGroup.html)>  | Read-only.  The groups of users who are allowed to update the settings for the tag or saved search.   |
| permittedUpdateUsers |  [Set](v1-Set.html).<[User](v1-User.html)>  | Read-only.  The users who are allowed to update the settings for the tag or saved search.   |
| shareGroup |  [UserGroup](v1-UserGroup.html)  | Read-only.  The group of users for whom the tag or saved search is visible.     If the tag or the saved search is only visible to its owner, the value for this property is `null`.     Use `folder.permittedReadUserGroups` and `folder.permittedReadUsers` instead.    |
| updateShareGroup |  [UserGroup](v1-UserGroup.html)  | Read-only.  The group of users who are allowed to update the settings for the tag or saved search.     If the tag or the saved search can only be updated by its owner, the value for this property is `null`.     Use `folder.permittedUpdateUserGroups` and `folder.permittedUpdateUsers` instead.    |

## Constructors

### Tag

```JAVASCRIPT
Tag(name, owner)
```

Parameters

| Name | Type | Description |
| --- | --- | --- |
| name |  String  |  The name of the tag.                     |
| owner |  [User](v1-User.html)  |  The owner of the tag. Defaults to the current user.                     |

## Methods

### findByExtensionProperties

```JAVASCRIPT
static findByExtensionProperties(extensionPropertiesQuery)
```

Searches for Tag entities with extension properties that match the specified query.

Available since 2024.3.43260

Parameters
: | Name | Type | Description |
: | --- | --- | --- |
: | extensionPropertiesQuery |  Object  |  The extension properties query, defined as a set of key-value pairs representing properties and their corresponding values.                     |

Return Value
: | Type | Description |
: | --- | --- |
: |  [Set](v1-Set.html).<[Tag]()>  |  The set of Tag entities that contain the specified extension properties.                 |

Example
: ```JAVASCRIPT
: {
: property1: "value1",
: property2: "value2"
: }
: ```

### findByName

```JAVASCRIPT
static findByName(name, ignoreVisibilitySettings)
```

Finds a set of tags with the specified name. The tags that were created by the current user are returned at the top of the list.

Parameters
: | Name | Type | Description |
: | --- | --- | --- |
: | name |  String  |  The name of the tag to search for.                     |
: | ignoreVisibilitySettings |  Boolean  |  When `true`, returns all matching tags without regard to their visibility settings. When `false` (default), returns only matching tags that are visible to the current user.                     |

Return Value
: | Type | Description |
: | --- | --- |
: |  [Set](v1-Set.html).<[Tag]()>  |  The set of tags that match the specified name.                 |

### findByOwner

```JAVASCRIPT
static findByOwner(owner)
```

Finds tags owned by a specified user without considering the visibility settings for the tags.

Available since 2025.3

Parameters
: | Name | Type | Description |
: | --- | --- | --- |
: | owner |  [User](v1-User.html)  |  The owner of the tags to find.                     |

Return Value
: | Type | Description |
: | --- | --- |
: |  [Set](v1-Set.html).<[Tag]()>  |  The set of tags with the specified owner.                 |

### findTagByName

```JAVASCRIPT
static findTagByName(name)
```

Finds the most relevant tag with the specified name that is visible to the current user.

Parameters
: | Name | Type | Description |
: | --- | --- | --- |
: | name |  String  |  The name of the tag to search for.                     |

Return Value
: | Type | Description |
: | --- | --- |
: |  [Tag]()  |  The most relevant tag.                 |

### becomes

```JAVASCRIPT
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

```JAVASCRIPT
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](v1-User.html)  |  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`.                 |

### canBeUsedForArticle

```JAVASCRIPT
canBeUsedForArticle(article, user)
```

Checks whether a user has permission to use the tag in the specified article.

Available since 2025.3

Parameters
: | Name | Type | Description |
: | --- | --- | --- |
: | article |  [BaseArticle](v1-BaseArticle.html)  |  The article to tag.                     |
: | user |  [User](v1-User.html)  |  The user to check. Defaults to the current user.                     |

Return Value
: | Type | Description |
: | --- | --- |
: |  Boolean  |  If the user can tag the article, returns `true`.                 |

### canBeUsedForIssue

```JAVASCRIPT
canBeUsedForIssue(issue, user)
```

Checks whether a user has permission to use the tag in the specified issue.

Available since 2025.3

Parameters
: | Name | Type | Description |
: | --- | --- | --- |
: | issue |  [Issue](v1-Issue.html)  |  The issue to tag.                     |
: | user |  [User](v1-User.html)  |  The user to check. Defaults to the current user.                     |

Return Value
: | Type | Description |
: | --- | --- |
: |  Boolean  |  If the user can tag the issue, returns `true`.                 |

### canBeWrittenBy

```JAVASCRIPT
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](v1-User.html)  |  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`.                 |

### is

```JAVASCRIPT
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

```JAVASCRIPT
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

```JAVASCRIPT
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`.                 |

### required

```JAVASCRIPT
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

```JAVASCRIPT
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`.                 |

## See also

[WatchFolder](v1-WatchFolder.html) [Extension Properties](apps-extension-properties.html) [User](v1-User.html) [Set](v1-Set.html) [UserGroup](v1-UserGroup.html) [BaseArticle](v1-BaseArticle.html)

