"use strict"; // P R O G R A M function generateEvent(event) { switch (event.type) { case "CommitCommentEvent": return ` <strong>${event.actor.display_login}</strong> commented on <a href="${generateUrl("comment", event)}" title="View this comment on GitHub">commit</a> in `; case "CreateEvent": return ` <strong>${event.actor.display_login}</strong> created ${event.payload.ref_type} <code>${event.payload.ref}</code> in `; case "DeleteEvent": return ` <strong>${event.actor.display_login}</strong> deleted ${event.payload.ref_type} <code>${event.payload.ref}</code> in `; case "ForkEvent": return ` <strong>${event.actor.display_login}</strong> forked <strong><a href="${generateUrl("repo", event)}" title="View this repo on GitHub" target="_blank" rel="noopener noreferrer">${event.repo.name}</a></strong> to <strong><a href="${generateUrl("forkee", event)}" title="View this repo fork on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.forkee.name}</a></strong> in `; case "IssueCommentEvent": if (event.payload.issue.pull_request) { return ` <strong>${event.actor.display_login}</strong> commented on pull request <em><a href="${generateUrl("issue", event)}" title="View this comment on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.issue.title}</a></em> in `; } else { return ` <strong>${event.actor.display_login}</strong> commented on issue <em><a href="${generateUrl("issue", event)}" title="View this comment on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.issue.title}</a></em> in `; } case "IssuesEvent": return ` <strong>${event.actor.display_login}</strong> ${event.payload.action} issue <em><a href="${generateUrl("issue", event)}" title="View this issue on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.issue.title}</a></em> in `; case "PullRequestEvent": return ` <strong>${event.actor.display_login}</strong> ${event.payload.action} pull request <em><a href="${generateUrl("pull_request", event)}" title="View this pull request on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.pull_request.title}</a></em> in `; case "PullRequestReviewCommentEvent": return ` <strong>${event.actor.display_login}</strong> commented on pull request <em><a href="${generateUrl("pull_request", event)}" title="View this comment on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.pull_request.title}</a></em> in `; case "PushEvent": return ` <strong>${event.actor.display_login}</strong> pushed to <code><a href="${generateUrl("push", event)}" title="View this branch on GitHub" target="_blank" rel="noopener noreferrer">${refToBranch(event.payload.ref)}</a></code> in `; case "ReleaseEvent": return ` <strong>${event.actor.display_login}</strong> released <em><a href="${generateUrl("release", event)}" title="View this release on GitHub" target="_blank" rel="noopener noreferrer">${event.payload.release.tag_name}</a></em> in `; case "WatchEvent": return ` <strong>${event.actor.display_login}</strong> starred the repo `; default: break; } } function generateUrl(type, event) { switch (type) { case "actor": return `https://github.com/${event.actor.display_login}`; case "comment": return event.payload.comment.html_url; case "repo": return `https://github.com/${event.repo.name}`; case "forkee": return `https://github.com/${event.payload.forkee.full_name}`; case "issue": return event.payload.issue.html_url; case "pull_request": return event.payload.pull_request.html_url; case "release": return event.payload.release.html_url; case "push": return `https://github.com/${event.repo.name}/tree/${event.payload.ref.replace("refs/heads/", "")}`; default: break; } } // H E L P E R function refToBranch(ref) { return ref.replace("refs/heads/", ""); } // E X P O R T S module.exports = exports = { generateEvent, generateUrl };