---
schema: rendered-html/v1
title: "Agile | Developer Portal for YouTrack and Hub Documentation"
source_url: https://www.jetbrains.com/help/youtrack/devportal/v1-Agile.html
generated_at: 2026-06-11T15:14:58.433463+00:00
---

Feedback

Thanks for your feedback!

Was this page helpful?

YesNo

Developer Portal for YouTrack and Hub

- Developer Portal
- Apps
- MCP Tools
- YouTrack Workflows
- JavaScript Workflow Quick Start Guide
- Create a Workflow
- Edit a Workflow
- Workflow Rule Types
- Transactions
- Use Cases for Workflows
- Web-based Workflow Editor
- Using an External Code Editor
- Default Workflows
- Custom Workflow Repository
- JavaScript Workflow Reference
- Rule-specific Properties
- Context
- Requirements
- Using the Workflow API
- Building Integrations with Slack
- Using REST API Methods in JavaScript Workflows
- Working with Dates and Times
- Working with Periods
- Localized Workflow Messages
- Troubleshooting Workflows
- Remote Debugger
- YouTrack Workflow API
- Change Log
- date-time
- entities
- [AbstractVcsItem](jetbrains__com__help__youtrack__devportal__v1-abstractvcsitem.md)
- [Agile](v1-Agile.html)
- [AppGlobalStorage](jetbrains__com__help__youtrack__devportal__v1-appglobalstorage.md)
- [Article](jetbrains__com__help__youtrack__devportal__v1-article.md)
- [ArticleAttachment](jetbrains__com__help__youtrack__devportal__v1-articleattachment.md)
- [ArticleComment](jetbrains__com__help__youtrack__devportal__v1-articlecomment.md)
- [BaseArticle](jetbrains__com__help__youtrack__devportal__v1-basearticle.md)
- [BaseArticleAttachment](jetbrains__com__help__youtrack__devportal__v1-basearticleattachment.md)
- [BaseArticleComment](jetbrains__com__help__youtrack__devportal__v1-basearticlecomment.md)
- [BaseComment](jetbrains__com__help__youtrack__devportal__v1-basecomment.md)
- [BaseEntity](jetbrains__com__help__youtrack__devportal__v1-baseentity.md)
- [BaseWorkItem](jetbrains__com__help__youtrack__devportal__v1-baseworkitem.md)
- Build
- BundleElementCondition
- BundleProjectCustomField
- Calendar
- Calendar24x7
- ChangesProcessor
- Channel
- EnumField
- FeedbackForm
- Field
- FieldBasedBundleValuesCondition
- FieldBasedUserValuesCondition
- FieldBasedValuesCondition
- Fields
- Gantt
- GroupProjectCustomField
- Issue
- IssueAttachment
- IssueComment
- IssueLinkPrototype
- IssueTag
- IssueWorkItem
- Iterator
- JsonForArticleAddAttachment
- JsonForArticleAddComment
- JsonForArticleConstructor
- JsonForIssueAddAttachment
- JsonForIssueAddComment
- JsonForIssueAddWorkItem
- JsonForIssueCommentAddAttachment
- JsonForIssueConstructor
- JsonForUserNotify
- MailboxChannel
- OwnedField
- PeriodProjectCustomField
- PersistentFile
- Project
- ProjectCustomField
- ProjectTeam
- ProjectType
- ProjectVersion
- PullRequest
- PullRequestState
- Requirement
- Requirements
- SavedQuery
- Set
- SimpleCalendar
- SimpleProjectCustomField
- Sprint
- State
- Tag
- TextProjectCustomField
- User
- UserAttributes
- UserCondition
- UserGroup
- UserProjectCustomField
- UserType
- VcsChange
- VcsServer
- WatchFolder
- WorkItemAttributeValue
- WorkItemAttributes
- WorkItemProjectAttribute
- WorkItemType
- http
- license
- notifications
- search
- strings
- workflow
- YouTrack Import Scripts
- YouTrack Form API
- YouTrack REST API
- Hub REST API

1. YouTrack Workflows
2. JavaScript Workflow Reference
3. YouTrack Workflow API
4. entities
5. [Agile](#0)

# Agile﻿

Last modified: 07 May 2026

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

Extends [BaseEntity](jetbrains__com__help__youtrack__devportal__v1-baseentity.md).

## Properties﻿

| Name | Type | Description |
| --- | --- | --- |
| author | User | Read-only.   The user who created the board. |
| 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} ``` |
| currentSprint | Sprint | Read-only.   The sprint that is considered to be in active development at the current moment.    Available since 2023.1 |
| 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 <https://www.jetbrains.com/help/youtrack/devportal/apps-extension-properties.html>.    Available since 2024.3  ``` 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 agile board. |
| sprints | Set.<Sprint> | Read-only.   The set of sprints that are associated with the board. |

## Methods﻿

### findByExtensionProperties﻿

static findByExtensionProperties(extensionPropertiesQuery)

Searches for Agile 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.<Agile> | The set of Agile entities that contain the specified extension properties. |

**Example**

{
   property1: "value1",
   property2: "value2"
}

### findByName﻿

static findByName(name)

Returns a set of agile boards that have the specified name.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| name | String | The name of an agile board. |

**Return Value**

| Type | Description |
| --- | --- |
| Set.<Agile> | A set of agile boards that are assigned the specified name. |

### addIssue﻿

addIssue(issue)

Adds the issue to the current sprint of the board.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue that is added to the board. |

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

### containsIssue﻿

containsIssue(issue)

Checks whether the issue belongs to the board.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which the condition is checked. |

**Return Value**

| Type | Description |
| --- | --- |
| Boolean | If the issue belongs to the board, returns ``true``. |

### findSprintByName﻿

findSprintByName(name)

Finds a specific sprint by name.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| name | String | The name of the sprint. |

**Return Value**

| Type | Description |
| --- | --- |
| Sprint | If a sprint with the specified name is found, the corresponding Sprint object is returned. Otherwise, the return value is null. |

### getAddedSprints﻿

getAddedSprints(issue)

Gets all sprints of this board where the issue is added during the current transaction.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which added sprints are returned. |

**Return Value**

| Type | Description |
| --- | --- |
| Set.<Sprint> | A set of sprints where the issue is added. |

### getIssueSprints﻿

getIssueSprints(issue)

Returns the sprints that an issue is assigned to on an agile board.

Available since 2018.1.39547

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which you want to get the sprints that it is assigned to. |

**Return Value**

| Type | Description |
| --- | --- |
| Set.<Sprint> | The sprints that the issue is assigned to on the agile board. |

### getRemovedSprints﻿

getRemovedSprints(issue)

Gets all sprints of this board from which the issue is removed during the current transaction.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which removed sprints are returned. |

**Return Value**

| Type | Description |
| --- | --- |
| Set.<Sprint> | A set of sprints from which the issue is removed. |

### getSprints﻿

getSprints(issue)

Gets all sprints of this board where the issue belongs.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which sprints are returned. |

**Return Value**

| Type | Description |
| --- | --- |
| Set.<Sprint> | A set of sprints where the issue belongs. |

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

### isAdded﻿

isAdded(issue)

Checks whether the issue gets added to the board in the current transaction.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which the condition is checked. |

**Return Value**

| Type | Description |
| --- | --- |
| Boolean | If the issue gets added to the board, 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`. |

### isRemoved﻿

isRemoved(issue)

Checks whether the issue gets removed from the board in the current transaction.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue for which the condition is checked. |

**Return Value**

| Type | Description |
| --- | --- |
| Boolean | If the issue gets removed from the board, 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. |

### removeIssue﻿

removeIssue(issue)

Removes the issue from all sprints of this board where it belongs.

**Parameters**

| Name | Type | Description |
| --- | --- | --- |
| issue | Issue | The issue that is removed from the board. |

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

- [Agile](/help/youtrack/devportal/v1-Agile.html)
- [Properties](/help/youtrack/devportal/v1-Agile.html#properties)
- [Methods](/help/youtrack/devportal/v1-Agile.html#methods)
- [findByExtensionProperties](/help/youtrack/devportal/v1-Agile.html#findByExtensionProperties)
- [findByName](/help/youtrack/devportal/v1-Agile.html#findByName)
- [addIssue](/help/youtrack/devportal/v1-Agile.html#addIssue)
- [becomes](/help/youtrack/devportal/v1-Agile.html#becomes)
- [canBeReadBy](/help/youtrack/devportal/v1-Agile.html#canBeReadBy)
- [canBeWrittenBy](/help/youtrack/devportal/v1-Agile.html#canBeWrittenBy)
- [containsIssue](/help/youtrack/devportal/v1-Agile.html#containsIssue)
- [findSprintByName](/help/youtrack/devportal/v1-Agile.html#findSprintByName)
- [getAddedSprints](/help/youtrack/devportal/v1-Agile.html#getAddedSprints)
- [getIssueSprints](/help/youtrack/devportal/v1-Agile.html#getIssueSprints)
- [getRemovedSprints](/help/youtrack/devportal/v1-Agile.html#getRemovedSprints)
- [getSprints](/help/youtrack/devportal/v1-Agile.html#getSprints)
- [is](/help/youtrack/devportal/v1-Agile.html#is)
- [isAdded](/help/youtrack/devportal/v1-Agile.html#isAdded)
- [isChanged](/help/youtrack/devportal/v1-Agile.html#isChanged)
- [isRemoved](/help/youtrack/devportal/v1-Agile.html#isRemoved)
- [oldValue](/help/youtrack/devportal/v1-Agile.html#oldValue)
- [removeIssue](/help/youtrack/devportal/v1-Agile.html#removeIssue)
- [required](/help/youtrack/devportal/v1-Agile.html#required)
- [was](/help/youtrack/devportal/v1-Agile.html#was)

[AbstractVcsItem](jetbrains__com__help__youtrack__devportal__v1-abstractvcsitem.md)[AppGlobalStorage](jetbrains__com__help__youtrack__devportal__v1-appglobalstorage.md)

- Privacy & Security
- Terms Of Use
- Trademarks
- Legal

Copyright © 2000–2026 JetBrains s.r.o.
