Merge remote-tracking branch 'ruizb/jira-issue-vendor'
This commit is contained in:
commit
a836fde7f5
57
server.js
57
server.js
|
@ -284,6 +284,63 @@ camp.notfound(/.*/, function(query, match, end, request) {
|
|||
|
||||
// Vendors.
|
||||
|
||||
// JIRA issue integration
|
||||
camp.route(/^\/jira\/issue\/(http(?:s)?)\/(.+)\/([^\/]+)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function (data, match, sendBadge, request) {
|
||||
var protocol = match[1];
|
||||
var host = match[2];
|
||||
var issueKey = match[3];
|
||||
var format = match[4];
|
||||
|
||||
var options = {
|
||||
method: 'GET',
|
||||
json: true,
|
||||
uri: protocol + '://' + host + '/rest/api/2/issue/' + issueKey
|
||||
};
|
||||
if (serverSecrets && serverSecrets.jira_username) {
|
||||
options.auth = {
|
||||
user: serverSecrets.jira_username,
|
||||
pass: serverSecrets.jira_password
|
||||
};
|
||||
}
|
||||
|
||||
// map JIRA color names to closest shields color schemes
|
||||
var colorMap = {
|
||||
'medium-gray': 'lightgrey',
|
||||
'green': 'green',
|
||||
'yellow': 'yellow',
|
||||
'brown': 'orange',
|
||||
'warm-red': 'red',
|
||||
'blue-gray': 'blue'
|
||||
};
|
||||
|
||||
var badgeData = getBadgeData(issueKey, data);
|
||||
request(options, function (err, res, json) {
|
||||
if (err !== null) {
|
||||
badgeData.text[1] = 'inaccessible';
|
||||
sendBadge(format, badgeData);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
var jiraIssue = json;
|
||||
if (jiraIssue.fields && jiraIssue.fields.status) {
|
||||
if (jiraIssue.fields.status.name) {
|
||||
badgeData.text[1] = jiraIssue.fields.status.name; // e.g. "In Development"
|
||||
}
|
||||
if (jiraIssue.fields.status.statusCategory) {
|
||||
badgeData.colorscheme = colorMap[jiraIssue.fields.status.statusCategory.colorName] || 'lightgrey';
|
||||
}
|
||||
} else {
|
||||
badgeData.text[1] = 'invalid';
|
||||
}
|
||||
sendBadge(format, badgeData);
|
||||
} catch (e) {
|
||||
badgeData.text[1] = 'invalid';
|
||||
sendBadge(format, badgeData);
|
||||
}
|
||||
});
|
||||
}));
|
||||
|
||||
// Travis integration
|
||||
camp.route(/^\/travis(-ci)?\/([^\/]+\/[^\/]+)(?:\/(.+))?\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
|
|
4
try.html
4
try.html
|
@ -722,6 +722,10 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
|
|||
<td><img src='/gitter/room/nwjs/nw.js.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/gitter/room/nwjs/nw.js.svg</code></td>
|
||||
</tr>
|
||||
<tr><th> JIRA issue: </th>
|
||||
<td><img src='jira/issue/https/issues.apache.org/jira/KAFKA-2896.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/jira/issue/https/issues.apache.org/jira/KAFKA-2896.svg</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
<h3 id="miscellaneous"> Longer Miscellaneous </h3>
|
||||
|
|
Loading…
Reference in New Issue
Block a user