Skip to end of metadata
Go to start of metadata

Integration with an Issue Tracking System in PhpStorm

Working on a project often means working with issue tracking. There are various issue tracking systems out there: YouTrack, JIRA, FogBugz, many projects use the issue tracker which comes with GitHub, and there are several more out there. PhpStorm comes with built-in support for many of these issue trackers. It even provides "generic" issue tracker integration which provides integration with other issue trackers like Drupal's.

From the File | Settings menu, we can specify issue tracker integration under the project settings' Tasks | Servers node. As you can see, PhpStorm comes with many supported issue trackers out-of-the-box.

Once an issue tracking server has been added, we can browse our list of issues, correlate VCS commits with issues and tasks, create new tasks and so on. The Alt+Shift+N keyboard shortcut will list available tasks and provides the starting point to creating a new task. 

Enabling integration with an Issue Tracking System

PhpStorm supports many issue tracking systems out of the box. Supported issue tracking systems provide similar configuration options: we typically have to specify how we want to connect to the issue tracker system as well as how we want our commit messages to be formatted.

PhpStorm comes with specific support for YouTrack, JIRA, Lighthouse, Pivotal Tracker, Redmine, GitHub, Trac, FogBugz, Mantis and Assembla. For other issue trackers, refer the section on generic issue trackers.

From the File | Settings menu, we can specify issue tracker integration under the project settings' Tasks | Servers node. The following example lists settings for connecting to a YouTrack server:

More information on connecting with YouTrack can be found in the YouTrack documentation

The next example lists settings for connecting to a GitHub issue tracker:

Once a connection has been created, we can optionally specify how we want our commit messages to be formatted.

Enabling integration with a generic Issue Tracking System

When working with an issue tracking system not specifically supported by PhpStorm, adding a generic issue tracker. This generic connector connects to many other issue tracking systems but requires a bit more configuration.

Let's add the Magento issue tracker using the generic issue tracker support. From the File | Settings menu, we can specify issue tracker integration under the project settings' Tasks | Servers node. Using the Add button (the green +), we can add a generic issue tracker. On the General tab, add the http://www.magentocommerce.com server URL.

On the Additional tab, we can specify the URL to the issue list. For Magento, this is {+} We also have to specify a regular expression for recognizing issues. Based on the RSS output, we can use <title>({id}.?) \/ ({summary}.?)</title> as the regex.

Using the Test button, we can verify our settings are correct. In our IDe we can make use of the Alt+Shift+N keyboard shortcut to list issues.

Here's another example connecting to the issue tracker.

Working with tasks

From our IDE, we can work with tasks from our issue tracking system. There are various possible operations:

  • Opening a task
  • Viewing a task
  • Switching between tasks
  • Committing code related to a task

Using the Alt+Shift+N keyboard shortcut, we can search for a given task. Note that we can also create a new task but keep in mind the tasks created are not persisted in the issue tracking system. Once a task is selected, we can open it. Optionally we can specify if we want to clear the current context or start creating a new VCS changelist.

Using the Tools | Tasks & Contexts | Show <task ID> Description, we can look at the task's description The Alt+Shift+B keyboard shortcut will open the task in a browser window.

When multiple tasks have been opened, we can switch between tasks using the Alt+Shift+T keyboard shortcut or the toolbar.

Once a task has been completed, we can commit source code to our VCS. If we have opened a task from the issue tracker, PhpStorm will populate the commit message based on the template specified in settings.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.