Skip to content

Instantly share code, notes, and snippets.

@thatkookooguy
Created February 7, 2017 15:07
Show Gist options
  • Select an option

  • Save thatkookooguy/0d6eb5b396bac64dc44bd735a18241ce to your computer and use it in GitHub Desktop.

Select an option

Save thatkookooguy/0d6eb5b396bac64dc44bd735a18241ce to your computer and use it in GitHub Desktop.
Event objects idea for the new `achievibit` webhook `eventManager.js`
module.exports = {
name: 'bitbucket',
eventHeader: 'X-Event-Key',
events: {
'ping': function(header) {
return _.isEqual(header, 'ping');
},
'pr-opened': function(header) {
return _.isEqual(header, 'pullrequest:created');
},
'pr-merged': function(header) {
return _.isEqual(header, 'pullrequest:fulfilled');
},
'pr-labeled-on-creation': function() {
return false;
},
'pr-labeled': function() {
return false;
},
'pr-unlabeled': function() {
return false;
},
'pr-edited': function(header) {
return _.isEqual(header, 'pullrequest:updated');
},
///////
'pr-reviewer-requested': function() {
return false;
},
'pr-reviewer-removed': function() {
return false;
},
'pr-review-created-comment': function() {
return false;
},
'pr-review-deleted-comment': function() {
return false;
},
'pr-review-edited-comment': function() {
return false;
},
'pr-review-submitted': function() {
return false;
}
}
};
module.exports = {
name: 'github',
eventHeader: 'X-GitHub-Event',
events: {
'ping': function(header) {
return _.isEqual(header, 'ping');
},
'pr-opened': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'opened');
},
'pr-merged': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'closed') &&
eventData.pull_request.merged;
},
'pr-labeled-on-creation': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'labeled') &&
_.isEqual(
eventData.pull_request.updated_at,
eventData.pull_request.created_at);
},
'pr-labeled': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'labeled');
},
'pr-unlabeled': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'unlabeled');
},
'pr-edited': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'edited');
},
///////
'pr-reviewer-requested': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'review_requested');
},
'pr-reviewer-removed': function(header, eventData) {
return _.isEqual(header, 'pull_request') &&
_.isEqual(eventData.action, 'review_request_removed');
},
'pr-review-created-comment': function(header, eventData) {
return _.isEqual(header, 'pull_request_review_comment') &&
_.isEqual(eventData.action, 'created');
},
'pr-review-deleted-comment': function(header, eventData) {
return _.isEqual(header, 'pull_request_review_comment') &&
_.isEqual(eventData.action, 'deleted');
},
'pr-review-edited-comment': function(header, eventData) {
return _.isEqual(header, 'pull_request_review_comment') &&
_.isEqual(eventData.action, 'edited');
},
'pr-review-submitted': function(header, eventData) {
return _.isEqual(header, 'pull_request_review') &&
_.isEqual(eventData.action, 'submitted');
}
}
};
module.exports = {
name: 'gitlab',
eventHeader: 'X-Gitlab-Event',
events: {
'ping': function() {
return false;
},
'pr-opened': function(header, eventData) {
return _.isEqual(header, 'Merge Request Hook') &&
_.isEqual(eventData.object_kind, 'merge_request');
},
'pr-merged': function() {
return false;
},
'pr-labeled-on-creation': function() {
return false;
},
'pr-labeled': function() {
return false;
},
'pr-unlabeled': function() {
return false;
},
'pr-edited': function() {
return false;
},
'pr-reviewer-requested': function() {
return false;
},
'pr-reviewer-removed': function() {
return false;
},
'pr-review-created-comment': function() {
return false;
},
'pr-review-deleted-comment': function() {
return false;
},
'pr-review-edited-comment': function() {
return false;
},
'pr-review-submitted': function() {
return false;
}
}
};
@thatkookooguy

Copy link
Copy Markdown
Author

Need to start and think on how to map all these events to the same achievibit events

@thatkookooguy

Copy link
Copy Markdown
Author

in the worst case scenario, some clients won't be able to get all the achievements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment