Skip to content

Instantly share code, notes, and snippets.

@adrianocanofre
Last active February 3, 2018 13:02
Show Gist options
  • Save adrianocanofre/9ce4305c1d74873aaa8d39c026df21ae to your computer and use it in GitHub Desktop.
Save adrianocanofre/9ce4305c1d74873aaa8d39c026df21ae to your computer and use it in GitHub Desktop.
Script Rocket.Chat bot only release
/* exported Script */
String.prototype.capitalizeFirstLetter = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
const getLabelsField = (labels) => {
let labelsArray = [];
labels.forEach(function(label) {
labelsArray.push(label.name);
});
labelsArray = labelsArray.join(', ');
return {
title: 'Labels',
value: labelsArray,
short: labelsArray.length <= 40
};
};
const githubEvents = {
ping(request) {
return {
content: {
text: '_' + request.content.repository.full_name + '_\n' + ':thumbsup: ' + request.content.zen
}
};
},
release(request){
const user = request.content.sender;
var d = new Date(request.content.release.published_at);
var body = "**Title**: " + request.content.release.name+"\n **Describe**: "
+ request.content.release.body + "\n\n **Released by** " +
"[" + request.content.release.author.login + "](" + request.content.release.author.html_url + ") at "
+ d.toLocaleString();
var text = '**Repository ' + "["+request.content.repository.full_name+"]("+request.content.repository.url+"):"
+ request.content.release.tag_name + "**\n\n" + body;
return {
content: {
attachments: [
{
thumb_url: user.avatar_url,
text: text,
fields: []
}
]
}
};
},
};
class Script {
process_incoming_request({ request }) {
const header = request.headers['x-github-event'];
if (githubEvents[header]) {
return githubEvents[header](request);
}
return {
error: {
success: false,
message: 'Unsupported method'
}
};
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment