-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix #2 Migrate project to use typescript
Signed-off-by: Ayush P Gupta <[email protected]>
- Loading branch information
Showing
242 changed files
with
959,546 additions
and
3,378 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
declare const asana: any; | ||
declare const core: any; | ||
declare const getCommitterAsanaTag: any; | ||
declare function handlePRAsana(asanaPAT: string, taskId: string, prUrl: string, prIsMerged: boolean, PULL_REQUEST: any, targetsPRRaise: object[], targetsPRMerge: object[], prTitle: string, ACTION: string): Promise<void>; | ||
declare function moveTask(taskId: string, client: any, task: any, targets: any[]): Promise<void>; | ||
declare function handleCommitPushAsana(asanaPAT: string, targets: any[], taskId: string, commitUrl: string, committerName: string, message: string): Promise<void>; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
var asana = require("asana"); | ||
var core = require("@actions/core"); | ||
var getCommitterAsanaTag = require("./utils").getCommitterAsanaTag; | ||
function handlePRAsana(asanaPAT, taskId, prUrl, prIsMerged, PULL_REQUEST, targetsPRRaise, targetsPRMerge, prTitle, ACTION) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var client, task, targets; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
client = asana.Client.create({ | ||
defaultHeaders: { "asana-enable": "new-sections,string_ids" }, | ||
logAsanaChangeWarnings: false, | ||
}).useAccessToken(asanaPAT); | ||
return [4 /*yield*/, client.tasks.findById(taskId)]; | ||
case 1: | ||
task = _a.sent(); | ||
if (!prIsMerged) return [3 /*break*/, 3]; | ||
return [4 /*yield*/, client.tasks.addComment(taskId, { | ||
text: "\u2705 PR Merged\n-------------------\n" + prTitle + "\n-------------------\nView: " + prUrl + "\n\uD83D\uDC49 Merged by: " + getCommitterAsanaTag(PULL_REQUEST.merged_by.login), | ||
})]; | ||
case 2: | ||
_a.sent(); | ||
core.info("Added the PR closed status to the Asana task: " + taskId); | ||
return [3 /*break*/, 7]; | ||
case 3: | ||
if (!(ACTION === "synchronize")) return [3 /*break*/, 5]; | ||
return [4 /*yield*/, client.tasks.addComment(taskId, { | ||
text: "\uD83D\uDD04 PR Added more commits\n\uD83D\uDC49 Updated by: " + getCommitterAsanaTag(PULL_REQUEST.user.login), | ||
})]; | ||
case 4: | ||
_a.sent(); | ||
core.info("Added the PR Update status to the Asana task: " + taskId); | ||
return [3 /*break*/, 7]; | ||
case 5: return [4 /*yield*/, client.tasks.addComment(taskId, { | ||
text: "\uD83C\uDD95 PR Raised\n-------------------\n" + prTitle + "\n-------------------\nView: " + prUrl + "\n\uD83D\uDC49 Raised by: " + getCommitterAsanaTag(PULL_REQUEST.user.login), | ||
})]; | ||
case 6: | ||
_a.sent(); | ||
core.info("Added the PR Raised to the Asana task: " + taskId); | ||
_a.label = 7; | ||
case 7: | ||
targets = prIsMerged ? targetsPRMerge : targetsPRRaise; | ||
return [4 /*yield*/, moveTask(taskId, client, task, targets)]; | ||
case 8: | ||
_a.sent(); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
} | ||
function moveTask(taskId, client, task, targets) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _loop_1, _i, targets_1, target; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_loop_1 = function (target) { | ||
var targetProject, targetSection; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
targetProject = task.projects.find(function (project) { return project.name === target.project; }); | ||
if (!targetProject) return [3 /*break*/, 5]; | ||
return [4 /*yield*/, client.sections | ||
.findByProject(targetProject.gid) | ||
.then(function (sections) { | ||
return sections.find(function (section) { return section.name === target.section; }); | ||
})]; | ||
case 1: | ||
targetSection = _b.sent(); | ||
if (!targetSection) return [3 /*break*/, 3]; | ||
return [4 /*yield*/, client.sections.addTask(targetSection.gid, { task: taskId })]; | ||
case 2: | ||
_b.sent(); | ||
core.info("Moved to: " + target.project + "/" + target.section); | ||
return [3 /*break*/, 4]; | ||
case 3: | ||
core.error("Asana section " + target.section + " not found."); | ||
_b.label = 4; | ||
case 4: return [3 /*break*/, 6]; | ||
case 5: | ||
core.info("This task does not exist in \"" + target.project + "\" project"); | ||
_b.label = 6; | ||
case 6: return [2 /*return*/]; | ||
} | ||
}); | ||
}; | ||
_i = 0, targets_1 = targets; | ||
_a.label = 1; | ||
case 1: | ||
if (!(_i < targets_1.length)) return [3 /*break*/, 4]; | ||
target = targets_1[_i]; | ||
return [5 /*yield**/, _loop_1(target)]; | ||
case 2: | ||
_a.sent(); | ||
_a.label = 3; | ||
case 3: | ||
_i++; | ||
return [3 /*break*/, 1]; | ||
case 4: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
} | ||
function handleCommitPushAsana(asanaPAT, targets, taskId, commitUrl, committerName, message) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var comment, client, task; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
comment = "\u2B06\uFE0F Commit Pushed\n-------------------\n" + message + "\n-------------------\n\uD83D\uDC40 View Commit: " + commitUrl + "\n\uD83D\uDC49 Committed by: " + getCommitterAsanaTag(committerName); | ||
core.info("Commenting: \n" + comment); | ||
client = asana.Client.create({ | ||
defaultHeaders: { "asana-enable": "new-sections,string_ids" }, | ||
logAsanaChangeWarnings: false, | ||
}).useAccessToken(asanaPAT); | ||
return [4 /*yield*/, client.tasks.findById(taskId)]; | ||
case 1: | ||
task = _a.sent(); | ||
return [4 /*yield*/, client.tasks.addComment(taskId, { | ||
text: comment, | ||
})]; | ||
case 2: | ||
_a.sent(); | ||
return [4 /*yield*/, moveTask(taskId, client, task, targets)]; | ||
case 3: | ||
_a.sent(); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
} | ||
module.exports.handlePRAsana = handlePRAsana; | ||
module.exports.handleCommitPushAsana = handleCommitPushAsana; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export declare function handleGitEvent(ASANA_PAT: string, PULL_REQUEST: any, EVENT_NAME: string, COMMITS: any[], TARGETS_COMMITS_PUSH: string, TARGETS_PR_RAISE: string, TARGETS_PR_MERGE: string, ACTION: string): void; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.handleGitEvent = void 0; | ||
var core_1 = __importDefault(require("@actions/core")); | ||
var github = require("@actions/github"); | ||
var _a = require("./asana"), handleCommitPushAsana = _a.handleCommitPushAsana, handlePRAsana = _a.handlePRAsana; | ||
function handleGitEvent(ASANA_PAT, PULL_REQUEST, EVENT_NAME, COMMITS, TARGETS_COMMITS_PUSH, TARGETS_PR_RAISE, TARGETS_PR_MERGE, ACTION) { | ||
var _a, _b; | ||
if (!ASANA_PAT) { | ||
throw { | ||
message: "Asana PAT Not Found! Generate and supply token from your Asana developer console.", | ||
}; | ||
} | ||
var ASANA_TASK_LINK_REGEX = new RegExp("https:\\/\\/app.asana.com\\/(\\d+)\\/(?<project>\\d+)\\/(?<task>\\d+).*?", "ig"); | ||
if (PULL_REQUEST != null) { | ||
core_1.default.info('Handling PR event...'); | ||
var targetsPRRaise = TARGETS_PR_RAISE ? JSON.parse(TARGETS_PR_RAISE) : []; | ||
var targetsPRMerge = TARGETS_PR_MERGE ? JSON.parse(TARGETS_PR_MERGE) : []; | ||
var prUrl = "" + PULL_REQUEST.html_url; | ||
var prIsMerged = PULL_REQUEST.merged; | ||
var prTitle = PULL_REQUEST.title; | ||
var parseAsanaURL = void 0; | ||
var _loop_1 = function () { | ||
var taskId = (_a = parseAsanaURL === null || parseAsanaURL === void 0 ? void 0 : parseAsanaURL.groups) === null || _a === void 0 ? void 0 : _a.task; | ||
core_1.default.info("Found task id: " + taskId); | ||
if (taskId) { | ||
handlePRAsana(ASANA_PAT, taskId, prUrl, prIsMerged, PULL_REQUEST, targetsPRRaise, targetsPRMerge, prTitle, ACTION).then(function () { | ||
core_1.default.info("Asana Task: " + taskId + " updated"); | ||
}).catch(function (reason) { | ||
core_1.default.error(reason); | ||
}); | ||
} | ||
else { | ||
core_1.default.info("Task id null/empty!"); | ||
} | ||
}; | ||
while ((parseAsanaURL = ASANA_TASK_LINK_REGEX.exec(PULL_REQUEST.body)) !== null) { | ||
_loop_1(); | ||
} | ||
} | ||
else if (EVENT_NAME === 'push') { | ||
core_1.default.info('Handling Commits Push event...'); | ||
var targets = TARGETS_COMMITS_PUSH ? JSON.parse(TARGETS_COMMITS_PUSH) : []; | ||
var commit = void 0; | ||
for (var _i = 0, COMMITS_1 = COMMITS; _i < COMMITS_1.length; _i++) { | ||
commit = COMMITS_1[_i]; | ||
// Commit Message | ||
var rawMessage = commit.message; | ||
var message = rawMessage.split('\n')[0]; | ||
for (var i = 0; i < rawMessage.split('\n').length; i++) { | ||
var line = rawMessage.split('\n')[i]; | ||
if (i !== 0 && line !== "" && !line.includes('app.asana.com') && !line.includes('Signed-off-by:')) { | ||
message = message.concat("\n\n" + line); | ||
} | ||
} | ||
var commitUrl = commit.url; | ||
var committerName = commit.committer.username; | ||
var parseAsanaURL = void 0; | ||
var _loop_2 = function () { | ||
var taskId = (_b = parseAsanaURL === null || parseAsanaURL === void 0 ? void 0 : parseAsanaURL.groups) === null || _b === void 0 ? void 0 : _b.task; | ||
core_1.default.info("Found task id: " + taskId); | ||
if (taskId) { | ||
handleCommitPushAsana(ASANA_PAT, targets, taskId, commitUrl, committerName, message).then(function () { | ||
core_1.default.info("Asana Task: " + taskId + " updated"); | ||
}).catch(function (reason) { | ||
core_1.default.error(reason); | ||
}); | ||
} | ||
else { | ||
core_1.default.info("Task id null/empty!"); | ||
} | ||
}; | ||
while ((parseAsanaURL = ASANA_TASK_LINK_REGEX.exec(rawMessage)) !== null) { | ||
_loop_2(); | ||
} | ||
} | ||
} | ||
else { | ||
core_1.default.info('No event found to work upon'); | ||
} | ||
} | ||
exports.handleGitEvent = handleGitEvent; | ||
try { | ||
var githubContext = github.context; | ||
console.log(JSON.stringify(githubContext)); | ||
var ASANA_PAT = core_1.default.getInput("asana-token"); | ||
var TARGETS_COMMIT_PUSH = core_1.default.getInput("targets_commit_push"); | ||
var TARGETS_PR_RAISE = core_1.default.getInput("targets_pr_raise"); | ||
var TARGETS_PR_MERGE = core_1.default.getInput("targets_pr_merge"); | ||
var COMMITS = githubContext.payload.commits; | ||
var EVENT_NAME = githubContext.eventName; | ||
var PULL_REQUEST = githubContext.payload.pull_request; | ||
var ACTION = githubContext.payload.action; | ||
handleGitEvent(ASANA_PAT, PULL_REQUEST, EVENT_NAME, COMMITS, TARGETS_COMMIT_PUSH, TARGETS_PR_RAISE, TARGETS_PR_MERGE, ACTION); | ||
} | ||
catch (error) { | ||
core_1.default.error(error.message); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export declare function getCommitterAsanaTag(name: string): string; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,24 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getCommitterAsanaTag = void 0; | ||
function getCommitterAsanaTag(name) { | ||
if (!name) { | ||
return name; | ||
} else if (name === 'apgapg') { | ||
} | ||
else if (name === 'apgapg') { | ||
return 'https://app.asana.com/0/712057959076542/list'; | ||
} else if (name === 'someshubham') { | ||
} | ||
else if (name === 'someshubham') { | ||
return 'https://app.asana.com/0/1127520825602495/list'; | ||
} else if (name === 'samvitjain') { | ||
} | ||
else if (name === 'samvitjain') { | ||
return 'https://app.asana.com/0/1190264423420113/list'; | ||
} else if (name === 'Aashishm178') { | ||
} | ||
else if (name === 'Aashishm178') { | ||
return 'https://app.asana.com/0/1200109906013623/list'; | ||
} else { | ||
} | ||
else { | ||
return name; | ||
} | ||
} | ||
|
||
module.exports.getCommitterAsanaTag = getCommitterAsanaTag; | ||
exports.getCommitterAsanaTag = getCommitterAsanaTag; |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.