diff --git a/src/lib/jobs/utils.ts b/src/lib/jobs/utils.ts index d3744a0..a10b059 100644 --- a/src/lib/jobs/utils.ts +++ b/src/lib/jobs/utils.ts @@ -5,3 +5,5 @@ export const isFinalStatus = (st: Status): Boolean => export const isContributionJob = (job: Job): Boolean => job.contribution !== undefined + +export const isCommentJob = (job: Job): Boolean => job.comment !== undefined diff --git a/src/status/main.ts b/src/status/main.ts index e0de212..6cdf926 100644 --- a/src/status/main.ts +++ b/src/status/main.ts @@ -1,4 +1,11 @@ -import {isContributionJob, isFinalStatus, get, required, Job} from '../lib' +import { + isContributionJob, + isFinalStatus, + get, + required, + Job, + isCommentJob +} from '../lib' import * as core from '@actions/core' import {track} from '../lib/track' @@ -12,9 +19,19 @@ const isApproved = (job: Job): boolean => isContributionJob(job) && job.contribution?.result === 'approved' +const getJobType = (job: Job): string => { + if (isContributionJob(job)) { + return 'contribution' + } + if (isCommentJob(job)) { + return 'comment' + } + return 'unknown' +} + const run = async ( jobID: string -): Promise<{isApproved: boolean; isSuggested: boolean}> => { +): Promise<{isApproved: boolean; isSuggested: boolean; jobType: string}> => { core.info(`Job ID: ${jobID}`) let job = await get(jobID) @@ -29,16 +46,21 @@ const run = async ( job = await get(jobID) } - return {isApproved: isApproved(job), isSuggested: isSuggested(job)} + return { + isApproved: isApproved(job), + isSuggested: isSuggested(job), + jobType: getJobType(job) + } } const jobID = required('codeball-job-id') run(jobID) - .then(async ({isApproved, isSuggested}) => { + .then(async ({isApproved, isSuggested, jobType}) => { await track({jobID, actionName: 'status'}) core.setOutput('approved', isApproved) core.setOutput('suggested', isSuggested) + core.setOutput('jobType', jobType) }) .catch(async error => { if (error instanceof Error) { diff --git a/status/action.yml b/status/action.yml index 871fc85..99cad1e 100644 --- a/status/action.yml +++ b/status/action.yml @@ -11,6 +11,8 @@ inputs: required: true outputs: + jobType: + description: 'The type of Codeball job ("contribution" or "comment")' approved: description: 'If the Codeball approved the contribution (true or false)' suggested: