2.0.2 • Published 7 years ago

jenkins-jira-tools v2.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

Jenkins-Jira-Tools (Gitlab)

Several tools that can speed up work by automating certain workflow processes. Jenkins -> Jira <- GitLab

Setup

npm install jenkins-jira-tools --save

Configuration:

const config = require("jenkins-jira-tools").configBuilder
.setJenkinsUrl("<JENKINS_URL>")
.setJenkinsJobName("jenkins_job_name")
.setJiraProjectName("XXXX")
.setJiraApiUrl("https://<JIRA_URL>/rest/api/latest")
.setJiraUser("username", "password")
.build();

var jjt = new JJT(config);

API

findTickets

Get tickets numbers from the jenkins job change log. The data will be saved in the array, which should be given as an argument.

Parameters
NameType
outputArray

createVersion

Create new version - based on given data - in Jira. Use versionDataBuilder to provide proper input data. As a second argument use function to save version id as a defined variable.

Parameters
NameType
dataObject
setterFnFunction

updateFixVersions

Update Fix Version/s field in given tickets.

Parameters

NameType
ticketsArray
versionIdString

changeStatus

Change Status of given tickets. As a data argument you can pass string value - status name - or use transitionDataBuilder to set more options. MAKE SURE THAT: options you want to set are available in status edit window

Parameters

NameType
ticketsArray
dataString/Object

assignTo

Assign selected tickets to the user. If username is not set or "", than ticket will be unassigned

Parameters

NameType
ticketsArray
usernameString

addComment

Add comment to tickets.

Parameters

NameType
ticketsArray
commentString

Helpers

ConfigBuilder

const configBuilder = require("jenkins-jira-tools").configBuilder

setJiraApiUrl(url)

setJiraUser(username, password)

setJiraProjectName(name)

optional setJiraTicketIdPattern(pattern)

With this method you set pattern to extract ticket numbers from commits. If it's not set than module uses (${jiraProjectName}-[0-9]{0,})[^d]{0}

setJenkinsUrl(url)

setJenkinsJobName(name)

optional setJenkinsBuildXMLUrl(url)

This method sets the url to the jenkins build XML file. If it's not set than module uses ${jenkinsUrl}/job/${jenkinsJobName}/lastBuild/api/xml

build()

VersionDataBuilder

const versionDataBuilder = require("jenkins-jira-tools").versionDataBuilder

setDescription(value)

setReleased(value)

setArchived(value)

optional setProject(value)

If it's not set than value is taken from main config jiraProjectName

optional setName(value)

If it's not set than value is read from package.json file.

build()

TransitionDataBuilder

const transitionDataBuilder = require("jenkins-jira-tools").transitionDataBuilder

setComment(value)

setResolution(value)

setStatus(value)

setAssignee(value)

build()

How to use it:

Usage is very simple. You have to create some js file which you can call in jenkins pipeline step. In most cases, this step should be triggered only when releasing from master branch.

JS (updateJira.js):

const JJT = require("./src/index.js").JJT;

const config = require("jenkins-jira-tools").configBuilder
.setJenkinsUrl("<JENKINS_URL>")
.setJenkinsJobName("jenkins_job_name")
.setJiraProjectName("XXXX")
.setJiraApiUrl("https://<JIRA_URL>/rest/api/latest")
.setJiraUser("username", "password")
.build();

const versionData = require("jenkins-jira-tools").versionDataBuilder
.setArchived(false)
.setReleased(true)
.setDescription("New is always better")
.build();

const transitionData = require("jenkins-jira-tools").transitionDataBuilder
.setResolution("Done")
.setStatus("Closed")
.setComment("This ticket is closed. Well done!")
.build();

var versionId;
var tickets = [];
var jjt = new JJT(config);

versionIdPtr = function(value) {
    if(value) {
        versionId = value;
        return;
    } else {
        return versionId;
    }
}

jjt.findTickets(tickets)
.createVersion(versionData, versionIdPtr)
.updateFixVersions(tickets, versionIdPtr)
.changeStatus(tickets, transitionData) /* or .changeStatus(tickets, "Closed") */
.assignTo(tickets, "");

JENKINS:

...
sh "node updateJira.js"
...
2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.1.25

7 years ago

1.1.24

7 years ago

1.1.23

7 years ago

1.1.22

7 years ago

1.1.21

7 years ago

1.1.20

7 years ago

1.1.19

7 years ago

1.1.18

7 years ago

1.1.17

7 years ago

1.1.16

7 years ago

1.1.15

7 years ago

1.1.14

7 years ago

1.1.13

7 years ago

1.1.12

7 years ago

1.1.11

7 years ago

1.1.10

7 years ago

1.1.9

7 years ago

1.1.8

7 years ago

1.1.7

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago