diff --git a/src/compareCommits.ts b/src/compareCommits.ts index 8895fdb..46edcee 100644 --- a/src/compareCommits.ts +++ b/src/compareCommits.ts @@ -1,17 +1,14 @@ import {context} from '@actions/github' import {octokit} from './client' -export class CommitsComparison { - constructor(public newFiles: string[], public modifiedFiles: string[]) {} +export type CommitsComparison = { + newFiles: string[] + modifiedFiles: string[] } export async function compareCommits(base: string, head: string): Promise { - const response = await octokit.rest.repos.compareCommits({ - base, - head, - owner: context.repo.owner, - repo: context.repo.repo - }) + const {owner, repo} = context.repo + const response = await octokit.rest.repos.compareCommits({base, head, owner, repo}) const files = response.data.files ?? [] @@ -23,5 +20,5 @@ export async function compareCommits(base: string, head: string): Promise { try { @@ -15,11 +16,12 @@ async function run(): Promise { const eventName = context.eventName if (eventName !== 'pull_request') { core.setFailed(`action support only pull requests but event is ${eventName}`) + return; } - const base = context.payload.pull_request?.base.sha - const head = context.payload.pull_request?.head.sha + const {pull_request} = context.payload + const base = pull_request?.base.sha + const head = pull_request?.head.sha - const checkName = 'Coverge Results' const checks = await octokit.rest.checks.listForRef({ ...context.repo, ref: head @@ -52,7 +54,7 @@ async function run(): Promise { const files = await compareCommits(base, head) core.info(`git new files: ${JSON.stringify(files.newFiles)} modified files: ${JSON.stringify(files.modifiedFiles)}`) - const report = fs.readFileSync(coverageFile, 'utf8') + const report = readFile(coverageFile) const filesCoverage = parseCoverageReport(report, files) const {passOverall, message} = messagePr(filesCoverage) diff --git a/src/readFile.ts b/src/readFile.ts new file mode 100644 index 0000000..ee4e31b --- /dev/null +++ b/src/readFile.ts @@ -0,0 +1,11 @@ +import * as fs from 'fs' + +const readFile = (path: string): string => { + try { + return fs.readFileSync(path, 'utf8') + } catch (error) { + throw new Error(`could not read file ${path}`) + } +} + +export default readFile