Skip to content

Redmine

Meindert Niemeijer edited this page Apr 8, 2023 · 3 revisions

Redmine Plugin

The RoboClerk Redmine plugin expects certain trackers to be defined in the software in order for it to work. In this document we'll take a look at these trackers and how to configure Redmine.

Redmine Plugin Setup

First we'll take a look at how to configure the Redmine plugin once all trackers are in place and you are ready to start using RoboClerk with Redmine. The configuration file contents are as follows:

# This is the RoboClerk Redmine plugin configuration

RedmineAPIEndpoint = "<ADDRESS OF REDMINE SERVER>"
RedmineAPIKey = "<APIKEY SET UP IN REDMINE>"

# The name of the project that we will be pulling from Redmine

RedmineProject = "<NAME OF THE PROJECT>"

# The following allows you to indicate the redmine trackers that map
# to various entities in the RoboClerk software

SystemRequirement = "SystemRequirement"
SoftwareRequirement = "SoftwareRequirement"
DocumentationRequirement = "Documentation"
DocContent = "DocContent"
SoftwareSystemTest = "SoftwareSystemTest"
UnitTest = "NA"
Risk = "Risk"
Anomaly = "Bug"
SOUP = "SOUP"

# certain items in redmine should be ignored because they are no longer
# relevant. Indicate which item statuses should be ignored.

Ignore = [ "Rejected" ]

# In order to provide hyperlinks in the documents provide the redmine
# base URL here. NOTE: Ensure the URL ends with a single /
# If you do not wish the software to include hyperlinks, just set this
# variable to an empty string "".

RedmineBaseURL = "http://localhost:3001/issues/"

As you can see, the configuration file contains a lot of the documentation you will need to understand it. Some things to note. In order to obtain an API key, you must login to your Redmine instance, go to "Administration", select "Settings", go to the "API" tab and "Enable REST web service" followed by "Save" button. You can then go to "My Account" and select "Show" under "API access key" to get your API key. Enter the name of the project and then create your mapping. The mapping shows how Redmine trackers map to trace entities in RoboClerk. For example, in the above, the Redmine tracker called "Documentation" maps to the "DocumentationRequirement" trace entity in RoboClerk. The reason to have a mapping like this is to enable organizations to use their own names for the various ISO62304 entities. If you would like to call a "SystemRequirement" a "ProductRequirement", in the case of SaMD for example, then this mapping allows you to do that.

Redmine Tracker Setup

Unfortunately, Redmine does not allow easy export of tracker and custom field configurations. Setting up Redmine in the way that RoboClerk expects is important, you may run into errors and unexpected issues if there is a mismatch. After considering the different options I decided to provide a demo instance of Redmine that has all the expected trackers and custom fields defined. It also show you how RoboClerk expects the different issues to be connected to each other. This instance is packaged in a docker container and is provided with each release of RoboClerk. Note that this instance is for demo and documentation purposes only, if you want to go to production with a Redmine instance, please get a fresh one from the Redmine project. Then, use the proveded demo Redmine server to configure your new server. The following instructions assume you have docker installed. First, load the Redmine demo docker:

docker load -i redmine-demo.tar.gz

After this completes successfully, you can start the container as follows:

docker run -p 3001:3000 redmine-demo

After this command the Redmine system will be available at:

http://localhost:3001/

To log into the system use the account admin and password password123. There is a single test project with example issues that can be imported by RoboClerk. Use the following values in the Redmine plugin configuration file:

# This is the RoboClerk Redmine plugin configuration

RedmineAPIEndpoint = "http://localhost:3001/"
RedmineAPIKey = "014a75c443c18891c3baf8f7f2d2ce37aa27b94c"

# The name of the project that we will be pulling from Redmine

RedmineProject = "TestProject"

# The following allows you to indicate the redmine trackers that map
# to various entities in the RoboClerk software

SystemRequirement = "SystemRequirement"
SoftwareRequirement = "SoftwareRequirement"
DocumentationRequirement = "Documentation"
DocContent = "DocContent"
SoftwareSystemTest = "SoftwareSystemTest"
Risk = "Risk"
Anomaly = "Bug"
SOUP = "SOUP"

# certain items in redmine should be ignored because they are no longer
# relevant. Indicate which item statuses should be ignored.

Ignore = [ "Rejected" ]

# In order to provide hyperlinks in the documents provide the redmine
# base URL here. NOTE: Ensure the URL ends with a single /
# If you do not wish the software to include hyperlinks, just set this
# variable to an empty string "".

RedmineBaseURL = "http://localhost:3001/issues/"

You will notice that only the SoftwareSystemTest, Bug, Risk and SOUP trackers have custom fields. The other trackers are standard Redmine issues. When configuring your own version of Redmine, adding additional fields to issues is not a problem, removing fields that RoboClerk expects will be problematic.

Clone this wiki locally