FlexDeploy has out-of-box integrations with Jira, Redmine, Azure Boards, GitLab, and GitHub. You can easily integrate with other issue tracking systems as well. Such third-party Issue Tracking System integrations can be enabled using Java or Groovy implementation. Several ITS templates are shipped with FlexDeploy, but you can create more to connect to other systems that aren’t supported with a vanilla install.
Go to Issue Tracking Systems page using Configuration → Integrations→ Issue Trackingmenu.
Let's look at more details on how to create a custom Issue Tracking System Provider with FlexDeploy. Click Createto implement an integration with custom issue tracking system.
Go to the ITS Providers screen.
Click create, or click on an existing row if you are making changes to an existing ITS Provider.
Provide a unique name and optionally description
Define properties for the new issue tracking system. Properties are configuration values used by FlexDeploy to connect to the new system. The values of the properties that you define here are set on Issue Tracking Instances, folders, and projects.
If you define properties, you can indicate display and validation details. You can also indicate if a property is required and/or encrypted.
Enter a unique Name before adding any properties
Provide either Java Implementation or Groovy API. If both are supplied, the Java Implementation is used. Java implementation means that you are giving the classpath for a java class which you are placing the jar for in the libext folder. Groovy is defined on the Groovy Api tab. A Groovy script would allow for dynamic update, whereas use of Java code will require restart of server.
Click Save.
Here we are editing a custom issue tracking system with properties. You can add existing properties using the drop down on the create button.
API Implementation
Your Implementation must extend IssueTrackingSystem in order to be used by FlexDeploy. If you are not going to allow calling a method, you can leave the body blank, or throw an error in the body, but the method must be defined. If you choose to make a Java implementation, your IDE will verify that you have implemented all the required methods. If you choose the Groovy implementation, then the FlexDeploy UI will validate that your class contains the necessary methods. Groovy implementations can be used even with 3rd party jars that you place in libext, and allow for easier iterations. The advantage of a Java implementation is a potentially tighter integration with source control.
Java Implementation
Here are the high level steps for a Java implementation. You can use any IDE to prepare this implementation.
Create java class that extends flexagon.fd.model.integration.its.api.IssueTrackingSystem. Example shown below has testConnection method implemented which uses properties map to retrieve the configuration values to connect to the issue tracking system.
All properties defined are available in Map returned by getProperties method.