5 Tips for Tracking Issues in YouTrack

Issue trackers are designed to help you manage issues faster and make your work more productive. But sometimes, you spend more time looking for important issues than actually working on them.
Today I will tell you about the most productive ways to track your issues in YouTrack.

1 — Build a Personal Board

If you find it hard to track your issues on an Agile Board that you use together with your team, you can create a personal board with your own settings to track only the tasks that are assigned to you.
To create such a board, use a personal board template that recognizes all of the projects where you are a team member and has a query to filter cards on the board and show only issues that are assigned to you.

templates

You always have the option to modify settings based on your own requirements. For example, to separate important and less important issues, you can use swimlanes based on the value in the Priority field. This helps you see the prioritization of the tasks and not miss anything important.

Agile_board_priorities

If you work on several projects, the most convenient way to track your issues is to enable the option to identify swimlanes by project.

agile_board_perproject

2 — Set up Notifications with Tags

Notifications are an important part of managing your issues. Getting the right notification at the right time helps you stay up to date and know exactly when you need to jump in and take action.
The default notification scheme sends updates for several triggers: when you are an assignee, a watcher, you are mentioned in a comment, or you’ve added a comment to or voted for an issue. Basically, you get notified for major issue changes. But what about the cases when you want to get notified for specific events?

First of all, you can subscribe to tags. For example, you want to track issues that are related to the 2017.3 release. Create a tag 2017.3 release, apply a custom notification scheme and tag the issues you want to include in 2017.3 release. If you only want to get notified when issues are fixed, simply select the Resolved event.

Tags

Now you won’t miss anything!

3 — Get Updates for Saved Searches

Ever want to get notified about the issues that match specific criteria? You can do it in YouTrack! Simply create a search query, save it, and subscribe to it. Here is an example.
At JetBrains we usually attend conferences all over the world. As a PMM of YouTrack, I don’t want to miss any conferences that are related to my product. I’ve created a query project: show #unresolved related project: youtrack and subscribed to it, so now I get notified when any issue that matches the query is created or updated.

subscribe_to_query

Thanks to a variety of notification settings, you won’t miss what’s important — even if the issue is not assigned to you.

4 — Track Deadlines

Deadlines are usually much closer than they appear. It’s really important that you don’t forget about major issues, especially when someone depends on them being fixed.

By default, YouTrack comes with a Due Date workflow. When it’s attached to your project, the assignee (or in case the issue doesn’t have an assignee, the team lead) gets notified when the issue is overdue.

If you want to get notified in advance, you can either create a new workflow or add a new rule to the current workflow. For example, I want to get an email two days before the deadline.
Here are some steps on how to do it:
1. Open the Due Date workflow in the workflows list.
2. Add a new on-scheduled rule.
3. The right way is to write the rule from scratch. But there is a trick. You can copy and paste the notify-assignee-on-overdue rule and change return ctx.issue.fields.DueDate < Date.now(); to return ctx.issue.fields.DueDate < Date.now() – 2 * 24 * 60 * 60 * 1000;
While you’re editing the workflow rule, update the subject line of the email message as well. Here is how the new rule looks like.

4. Attach the new rule to your project and you are good to go.
Please note that you need project administrator permissions to manage workflows.

5 — Pin Tags and Saved Searches

Another way to easily filter your issues is to pin tags and saved searches to the sidebar. Let’s say you always want to track the list of unresolved issues that are assigned to you sorted by due date. Simply create a search query #me sort by: due date #unresolved, save it, and pin to the sidebar. Now you have an easy way to get to your issues!

pinned

We hope that these tips improve your issue tracking experience. Do you have your own tricks for managing issues? Share your tips and feedback in the comment section below!

Sincerely yours,
the JetBrains YouTrack team

Posted in how-to, newsletter, tips | Tagged , , , , | Leave a comment

Introduction to JavaScript Workflows in YouTrack 2017.3 Webinar Recording and Q&A Session

Thanks to everyone who joined our live webinar to discover more about JavaScript workflows in YouTrack 2017.3. The recording of the webinar is now available on our JetBrains YouTube Channel.

In this webinar, we introduced you to two major changes for workflows in YouTrack:

  • Working with the built-in workflow editor
  • Writing workflows in JavaScript

We explored the new editor, demonstrated how to work with various types of rules and scripts, and shared real-life use cases. We also covered key changes to the workflow API and explained how to use webhooks to build your own integrations.

If you missed the webinar for any reason, you are welcome to watch it now!

One more thing, we’ve set up a brand new YouTrack Workflow Community in Slack. We plan to use this channel to exchange knowledge about new workflows in YouTrack. You are welcome to join.

We presented several workflow scripts during the webinar to illustrate different types of rules. You’ll find the code for all the sample scripts below. You’re welcome to copy, modify, and use them to support your own use cases.

Title Star reviewer
Type On-change rule
Description Adds a user to the list of watchers when the user is set as the reviewer.

Title Ping reviewer by email
Type Action rule
Description Sends an email notification to the reviewer with a command.

Title Ping reviewers in the morning
Type On-schedule rule
Description Sends an email reminder to all reviewers every morning at 10:00.

Title State machine
Type State machine rule
Description Defines legal transitions between values for the State field, with reminders and restrictions for specific states.

Title Notify
Type Custom script
Description Contains functions that push notifications to Slack and send notifications over email.

Title Ping reviewer on Slack
Type Action rule
Description Sends notifications to reviewers in Slack.

Q&A session

Q: Have you removed the Testing and Closed states from the default sets of State values?
A: The set (or sets) of values that are used for the State field are completely customizable, so you are welcome to use your own set of states. Each project template has its own default set of values for the State field, so the defaults vary by project type. Testing and Closed are not used as defaults in the current version, but you can add them to your projects if you prefer.

Q: Could you elaborate a bit more what the “guard:” part is about? Especially, the difference to requirements.
A: The guard is a function that is called to check if an issue should be processed by the rule (the action function actually). Whereas the requirements are a way to define what objects (Fields, Users, UserGroups etc.) a rule needs to function properly.

Q: What subset of JavaScript is available in scripts?
A: For now it’s ECMA 5.1. We have plans to support ECMA 6 (aka 2015), but don’t have an ETD at the moment.

Q: Can you notify the user via slack instead of mail ? Or the notify method is only mail?
A: Yes, you can send a notification to a Slack channel or individual user, using the workflow. Please see the example above.

Q: Will notifications support HipChat or Microsoft Messenger?
A: Technically it is possible to integrate with any service that supports REST API calls. HipChat and Microsoft Messenger have such APIs. We have an example of a workflow that integrates with HipChat (see the documentation), but this integration is written in the old workflow API. To modify this workflow as written, you have to use the external YouTrack Workflow Editor. You can always use this as a reference to create something similar in JavaScript. We don’t have any examples for integrations with Microsoft Messenger at this point in time, but we’d be happy to help you create one.

Q: Can I, for example, make a HTTP request from the rule?
A: Yes, you can. Please take a look at our guide.

Q: Any plan to support TypeScript / Kotlin JS?
A: We’ll release some tools that let you develop workflows on the npm infrastructure. This means that you’ll be able to use transpilers to write in practically any language you want. It’s currently in development, so will be released pretty soon. As for Kotlin JS, we plan to support it with transpilers as well, but we don’t have an ETD.

Q: Can JS workflows work together with old type workflows?
A: Yes, you are welcome to use both types of workflows on the same installation. However, we suggest that you write all new workflows in JavaScript. Support for workflows in the previous API will be discontinued in the not-so-distant future. If you already have custom workflows written in the previous version of the API, stay ahead of the curve and migrate early.

Q: Is there a way of loading external scripts in the online code editor: For eg. if I want to load an external json rule in the state-machine rules?
A: As there are now modules for custom scripts, you can store your JSON in such a module and reference this module in other scripts and rules. You can also fetch resources that are stored outside YouTrack using request methods from the http module.

Q: Does the cron feature work OOB with a self-hosted installation?
A: Yes, it works. Moreover, on self-hosted (YouTrack Standalone) installations, you can set a cron expression that executes once every second. For YouTrack InCloud instances, the shortest possible duration for executing on-schedule rules is once per minute.

Q: Which part of JS is running in user browser and which part on JB servers? For example conditions and actions?
A: All JavaScript workflows run on the server.

Q: Is it possible to integrate workflow editor with source code repository ?
A: Unfortunately, not at the moment. We have plans to support this feature, but cannot provide an ETD at this point in time.

Q: For the schedule rule, is it possible to send a list of issues that match a search query in one email, rather than a separate email for each issue? For example, ‘Here are all of the issues that need estimation’
A: Yes. Workflow rules are always linked to issues (they react on issues changes, run on schedule over selected issues, and so on). In your case, you want an on-schedule rule to be triggered once, and process multiple issues in one action. To achieve this, you need to create an “anchor” issue (some dedicated issue which is explicitly guaranteed not to be deleted) and use the search module from the workflow API to get the list of issues you are interested in. Please take a look at the following sample code. It is “anchored” to one issue, it finds all of the critical issues that are unresolved in the corresponding project, then types the list of issues that match this search criteria to the console:

Q: Is it possible to write a workflow to enforce to fill in Time Tracking in YT when changing state?
A: Yes. There are two basic ways:
You can prompt the user to add a work item when the user, say, moves an issue from In Progress to Fixed. For that, you need to check that the value for the Spent time field has changed, using the check function from the workflow module. The guard and action will look as follows:

You can add a work item automatically, using the issue.addWorkItem method. In this case, you need an additional field that stores a date type to calculate the amount of spent time for the work item (e.g. the difference between current moment and the moment when issue was moved to the In Progress state).

Q: Is there a recommended way to test these JS workflows without committing them to a live project? How can I run a tests for scripts? What is a recommended life cycle for scripts? aka sdk versions compatibility etc?
A: The simplest way to test your workflows is to create a Sandbox project in YouTrack, which no one but you will see, and test the rules there. When testing and debugging, use the console.log method to dump any information you are interested in into the console (at the bottom of the editor) and into the workflow.log files. We have also a sandbox InCloud instance. When you sign up to this instance, you are assigned the Project Admin role in the Global project and can create new projects and workflows right away.
However, we are currently developing npm infrastructure for workflows. You can already use an npm package that contains the current version of the workflow API. We are building a package that contains tasks for downloading workflows from your server and uploading your changes directly. Further down the road, we hope to provide a Karma/Mocha-esque framework for testing workflows.

Q: Actually when we log an object in the console we cannot read it, do you plan to fix that?
A: At the moment, only some of the objects in the workflow API have meaningful toString implementations. We are aware of the issue and are working on it.

Posted in webinar | Tagged , , , | Leave a comment

YouTrack 2017.3 is released!

Please welcome YouTrack 2017.3!

506x253_Twitter_post_banner_YT_2017_3_@2x

YouTrack 2017.3 introduces workflows in JavaScript, personal board template, improved Kanban support and other enhancements.

New Features

  • Workflows in JavaScript
  • Improved Kanban support
  • Personal board templates
  • Project-based swimlanes
  • Authentication throttling

Enhancements

  • Advanced visibility option
  • Time report improvements
  • General report improvements
  • OAuth 2.0 Presets for GitLab and Bitbucket Cloud
  • Zendesk Integration Improvements

Experimental features

  • Custom widgets

Workflows in JavaScript

In YouTrack 2017.3, the Workflows in JavaScript feature becomes public. You can now create workflows in JavaScript instead of the domain-specific language that is used in the previous versions. You can write a workflow in any IDE that supports JavaScript, pack it into a ZIP file and upload it to YouTrack. You can also write workflows from scratch in a web-based workflow editor inside YouTrack.

Workflow

We’ve also added support for action rules. This type of script lets you extend YouTrack with actions that can be applied as commands or accessed directly from the issue toolbar. The new workflows also support custom scripts, which let you better organize and structure your code. Define your own functions and objects and use them in other rules and workflows.

Check out a short video to learn more about the built-in workflow editor.

We still support workflows that were written in the external workflow editor. However, if you want to apply changes to old workflows, we recommend that you rewrite them in JavaScript.

Improved Kanban Support

It is now possible to disable sprints on Agile Board. This means that teams who follow a Kanban methodology and other users who just don’t want to use sprints can disable them completely. It is also possible to add an optional query to filter the cards on the board.

Kanban

Personal Board Template

YouTrack 2017.3 comes with a personal board template that is preconfigured to be used for personal purposes. The template recognizes all of the projects where you are a team member for quick and easy configuration. The template also uses a query to filter cards on the board and show only issues that are assigned to you.

Personal Board

Project-based Swimlanes

You can now use projects to identify the swimlanes on an agile board. This feature is very helpful for those who track activities from various projects on one board. You can enable this option to identify swimlanes by values from the project field in the board settings.

Project based swimlanes

Authentication Throttling

It is now possible to set up throttling for login attempts and verification of user credentials to prevent brute-force attacks and increase data security. Learn more about how it works in the documentation.

Throttling

Continue reading

Posted in news, newsletter, release | Tagged , , , , , | 6 Comments

YouTrackSharp 3.0 beta – A .NET Standard Client for YouTrack

YouTrackSharpPlease welcome a brand new (preview) version of YouTrackSharp – a .NET library to work with the YouTrack REST API. It’s a complete rewrite from the previous version, since a lot of things in the .NET world have changed.

First of all, YouTrackSharp now targets  .NET Standard 1.3, which means it can now be used with pretty much any .NET platform, including .NET Framework 4.6, .NET Core, Mono, Xamarin, and UWP. We wanted to make sure many different applications could be developed with YouTrackSharp, on many platforms.

Another benefit of being on this new stack is we were able to make YouTrackSharp async all the way. And we were able to tackle some other things, too, like handling serialization of YouTrack’s timestamps into DateTime where possible. Let’s have a look! Continue reading

Posted in how-to, tips | Tagged , , , , , | 2 Comments

Live Webinar: Introduction to JavaScript Workflows in YouTrack 2017.3

YouTrack 2017.3 is just around the corner! In this version we are introducing a brand new JavaScript Workflows along with a built-in editor.

Join us for a free live webinar on Wednesday, August 16th 16:00 – 17:00 CEST (10:00 AM – 11:00 AM EDT) to see the power of new workflows in action. The session will be powered by YouTrack team members, the best experts in this topic.

yt1-r

This live session introduces you to two major changes for workflows in YouTrack:

  • Working with the built-in workflow editor
  • Writing workflows in JavaScript

Scott and Mariya will walk you through the new editor, show you how to work with action rules and scripts, and share real-life use cases. We’ll also call out key changes to the workflow API and show you how to use webhooks to build your own integrations.

Book your seat now, space is limited!

Posted in webinar | Tagged , , | Leave a comment

YouTrack InCloud Discontinues HTTP Support

We at JetBrains care about the security of our customers’ data. It is extremely important that we keep it safe for you.
As you might know, YouTrack InCloud instances use the HTTPS protocol by default, but this wasn’t always the case. We also give you the option to disable HTTPS for your instance. To make YouTrack more secure, we have decided to discontinue support for HTTP connections.

Who is affected?
This change affects YouTrack InCloud instances where:

  • The instance was registered before December 2015 and is not configured to use HTTPS. Instances created after this date use HTTPS by default.
  • The HTTPS only setting has been manually disabled, allowing unsecured connections over HTTP. To verify this setting, check the Domain Settings page.
  • The instance uses a custom domain name and does not have a valid SSL certificate for the custom domain.
  • The instance accepts HTTP requests from external integrations that use the REST API.

What does it mean?
If you interact with YouTrack in your browser, you basically don’t have to do anything. You will be redirected to use an HTTPS connection automatically.

All of the instances that are hosted on the *.myjetbrains.com domain will switch to HTTPS.

If you have a custom domain set up for your instance, we will automatically generate a certificate signed by Let’s Encrypt for you. You will still be able to set up your own certificates, so no changes will be applied to certificates that were installed previously.

The only situation that requires action on your part is when you have external integrations that access data in YouTrack using the REST API over an unsecured connection. In this case, you need to update these integrations to use HTTPS. Otherwise, the connections are refused and the integration is broken.

When will it happen?
We plan to disable HTTP access in approximately one month. To ensure that your integrations work properly, make sure that all of your applications that use the YouTrack REST API are updated to use HTTPS before then.

Thank you for using YouTrack.
If you have any questions, please contact our support team.

Posted in news, newsletter, tips | 5 Comments

Optimize Development and Testing with the YouTrack Plugin for EasyQA

YouTrack + EasyQA

Quality Assurance teams often use dedicated tools for testing. Your developers either don’t have access to these tools or are focused on the tasks in their issue tracker. As a result, your testing process can become disconnected from your development efforts.

The best way to solve this problem is to bring these two worlds together. Integrate your test management tool with your issue tracker to synchronize testing activity with your development process.

Why Integrate EasyQA and YouTrack?

EasyQA is a test management tool, which lets you create test plans, execute test cases, generate QA test reports, and track the activity of your QA team. EasyQA also has a built-in Kanban board for reporting and tracking bugs.

By integrating with YouTrack in EasyQA, your testers can easily report bugs that are discovered during testing while your developers can work to resolve these problems in the tool they use to track other types of issues.

When you install the YouTrack plugin that was developed by the EasyQA team, you can:

  • Associate the cards that are created in EasyQA with a single YouTrack project.
  • Create an issue in YouTrack when you add a card to the Kanban board in EasyQA.
  • Update issues in YouTrack when you edit a card in EasyQA. Updates are applied to changes for the issue summary, description, type, priority, and state.
  • If you update these issues in YouTrack, you can manually run reverse synchronization with EasyQA. The automatic synchronization process only works in one direction.

To install and configure the YouTrack plugin in EasyQA, follow these instructions.
We hope that using YouTrack and EasyQA brings your development and testing teams closer together. Each team can enjoy working with an application that best supports their process while maintaining a singular overview of the work in progress.

Posted in how-to, news | Tagged , | Leave a comment

Important Security Problem concerning Issue Visibility

Bug description
On Friday June 30th at 9:45 am CEST we were notified of a potential security problem in YouTrack that affects issue visibility in certain cases. Specifically, when the visibility of the issue was set by a workflow, it was possible that certain users that were not part of the group could access the issue during a search request. This issue only affected YouTrack version 2017.2.33634 and later.
We have already resolved the issue and a new download is available. All InCloud instances have been applied with the hotfix.

What actions you should take
If you are running YouTrack Standalone and have YouTrack version 2017.2.33634 or later Installed, please upgrade by downloading the latest version.

If for some reason you cannot upgrade to the latest version, there is a workaround that can be performed:
1. Locate all the workflows that set groups.
2. Find any line that sets the group in the following way:

issue.permittedGroup = someGroup

3. Replace the line with:

issue.applyCommand(“visible to “ + someGroup.name)

where someGroup is the name of your group.

4. Fix any existing issues by applying the command:

visible to someGroup
to them (you can do this by selecting them and doing a batch update).

If you need any further assistance, please contact our Support Engineers or simply respond to this email.

We sincerely apologise for the incident and rest assured we’re already putting in additional steps to prevent this in the future.

Posted in news, newsletter | Leave a comment

Updated Storage Limits

Great news!
We have extended the storage limits for specific commercial plans.

banner_storage_05
YouTrack InCloud commercial plans have been around for awhile. We thought this would be a good time to update some of them. The main idea behind subscription plans has not changed. Each plan supports a set number of users and is allocated a fixed amount of storage. However, we have decided to extend the storage for some of the plans.

Which plans are affected?

The 25 users plan with 10 GB is extended to 15 GB.
The 50 users plan with 15 GB is extended to 20 GB.
The 100 users plan with 20 GB is extended to 25 GB.

If you use any of these plans, your current storage limits have already been automatically updated.

Please visit the YouTrack Pricing page for more details. We hope that the extended storage will improve your issue tracking experience and will help you to share more files with your team.

Sincerely yours,
The YouTrack team

Posted in news, newsletter | Tagged , | 1 Comment

Baking Boards — Episode 7: Version-based Boards

In this episode of Baking Boards, we show you how two very different teams at JetBrains use agile boards that synchronize sprints with the fix version of the product in development.

Preparation

1. Create your board.
Start with the Version-based board template.
1-create

2. Add your project.
When you link sprints to fix versions, you’re normally dealing with a single project. To work properly, this project should already use a field with the name Fix version or Fix versions. You can also manage multiple projects on a version-based board, as long as all of the projects use the same set of values for the Fix version or Fix versions field.
2a-projects

If you already have a saved search for backlog issues, leave the Backlog option set to Use existing and select it in the Saved Search drop-down list.
2b-projects

Otherwise, choose Create new, then click the Create Board button.
When you create the board, the option to link sprints to the Fix version or Fix versions field is enabled automatically. All of the values that are currently stored in this field are added to the board as sprints.
3. (Optional) Apply a filter.
With the Link sprints to custom field option, you can use a search query to filter the cards on the board.
3-filter
Use this filter to show only issues that are assigned to a specific subsystem or include a special tag.

4. Set up your columns.
You’ll notice right away that your board has configuration errors. To fix it, switch to the Columns and Rows tab and choose a field to identify your columns. The most common configuration is to use the State field.
4-columns

5. Define swimlanes.
Most software development teams use the issue type to organize their work into features or user stories. You can use these issues to define swimlanes on the board and manage their subtasks as cards. Select the Issues option, choose the Type field, and add the issue type you use for parent tasks in your project.
5-swimlanes

6. Configure cards.
If you plan to create issues directly on the board, it saves you time to set a default value for the Type field. Switch to the Card tab and set the default value for the Type field to Task.

7. Pick a chart.
If you want to track your progress, pick the chart that mirrors how you manage your workload. If you follow a scrum methodology, use the Burndown chart. For Kanban, use Cumulative flow.

Secret Sauce

The dotMemory team uses several workflows to manage issues in their project as they work with their agile board.

One of the main reasons they use workflows is because they use an enumerated field named Phase (not a state-type field) to identify the columns on the board. These workflows synchronize changes that are applied when a card moves between columns and the values that are stored in the State field.

The reason that they use Phase instead of State to identify columns on the board is that the Phase field is private. Only members of the dotMemory team have permission to update private fields in their project. Even though members of other development teams can view and update these issues, only members of the dotMemory team can change the value of the field that defines their position on the agile board.

Their workflow synchronizes the values for the Phase and State fields and automates other board-related activity when changes are applied to issues. The values for these two fields are shown in the following diagram:

6-secret-sauce

The first rule in this workflow is a state-machine rule that regulates changes between the values for the Phase field. The transitions that are allowed for this field are represented by the arrows between each value on the left side of the following diagram.
7-secret-sauce

This state-machine rule also sets the value in the State field based on the value that is set for the Phase field. These changes are represented by the arrows from the values for the Phase field to the values for the State field. For example, when the value for the Phase field changes from Testing to Development (because the issue did not pass the test phase), the value for the State field is set to Reopened.
Here’s the code for the state-machine rule:
agile-board-phases

An on-change rule changes the value in the Phase field if a user updates the value of the State field. These changes are represented by the arrows from the values for the State field to the values for the Phase field in the following diagram:
8-secret-sauce

Here’s the code for this rule:
set-phase-depending-on-issue-state
The remaining rules add and remove issues from the board as needed.
– The first rule adds issues to the board when an issue is reported and is assigned a fix version. As long as the fix version is not set to the Backlog, the value for the Phase field is set to To do.
add-issue-to-agile-board-if-needed

– The second rule clears the value for the Phase field when the fix version is set to the Backlog.
fix-version-backlog

– The third rule clears the value for the Phase field when the value for the State field is set to any value that resolves the issue but does not involve fixing the problem. This action removes the issue from the board. Because the sprints are linked to fix versions, the fix version is removed as well. These states are shown in red in the following diagram:
9-secret-sauce

 

 

 

 

 

 

 

 

 

 

 

Here’s the code for this rule:
remove-issue-from-board-on-condition

Want to try this board configuration for your project? Get YouTrack and bake your board with pleasure!

Posted in how-to, newsletter, tips | Tagged , , | Leave a comment