mirror of
https://github.com/wagoid/commitlint-github-action.git
synced 2025-11-07 00:06:54 +00:00
Merge pull request #800 from wagoid/revert-798-feat/using-rest-for-push
Revert "feat: updating push event trigger to use rest API (OctoKit) vs push event"
This commit is contained in:
commit
bc25072483
3 changed files with 124 additions and 260 deletions
|
|
@ -22,21 +22,13 @@ const getCommitDepth = () => {
|
|||
return Number.isNaN(commitDepth) ? null : Math.max(commitDepth, 0)
|
||||
}
|
||||
|
||||
const getPushEventCommits = async () => {
|
||||
const octokit = getOctokit(getInput('token'))
|
||||
const { owner, repo } = eventContext.issue
|
||||
const { before } = eventContext.payload
|
||||
const { data: commits } = await octokit.rest.repos.listCommits({
|
||||
owner,
|
||||
repo,
|
||||
sha: before,
|
||||
per_page: 100,
|
||||
})
|
||||
|
||||
return commits.map((commit) => ({
|
||||
message: commit.commit.message,
|
||||
hash: commit.sha,
|
||||
const getPushEventCommits = () => {
|
||||
const mappedCommits = eventContext.payload.commits.map((commit) => ({
|
||||
message: commit.message,
|
||||
hash: commit.id,
|
||||
}))
|
||||
|
||||
return mappedCommits
|
||||
}
|
||||
|
||||
const getPullRequestEventCommits = async () => {
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ const {
|
|||
|
||||
const initialEnv = { ...process.env }
|
||||
|
||||
const mockListPullCommits = td.func('listCommits')
|
||||
const mockListPushCommits = td.func('listCommits')
|
||||
const mockListCommits = td.func('listCommits')
|
||||
|
||||
const mockCore = td.object(['getInput', 'setFailed', 'setOutput'])
|
||||
|
||||
|
|
@ -31,10 +30,7 @@ jest.unstable_mockModule('@actions/github', () => {
|
|||
constructor() {
|
||||
this.rest = {
|
||||
pulls: {
|
||||
listCommits: mockListPullCommits,
|
||||
},
|
||||
repos: {
|
||||
listCommits: mockListPushCommits,
|
||||
listCommits: mockListCommits,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
@ -76,18 +72,15 @@ describe('Commit Linter action', () => {
|
|||
'./not-existing-config.mjs',
|
||||
)
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [buildResponseCommit('wrong-message', 'wrong message')],
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-message',
|
||||
message: 'wrong message',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
|
||||
await runAction()
|
||||
|
|
@ -109,18 +102,15 @@ describe('Commit Linter action', () => {
|
|||
'./commitlint.config.js',
|
||||
)
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [buildResponseCommit('wrong-message', 'wrong message')],
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-message',
|
||||
message: 'wrong message',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
|
||||
await runAction()
|
||||
|
|
@ -130,19 +120,15 @@ describe('Commit Linter action', () => {
|
|||
|
||||
it('should fail for single push with incorrect message', async () => {
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [buildResponseCommit('wrong-message', 'wrong message')],
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-message',
|
||||
message: 'wrong message',
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
|
||||
await runAction()
|
||||
|
|
@ -154,21 +140,19 @@ describe('Commit Linter action', () => {
|
|||
|
||||
it('should fail for push range with wrong messages', async () => {
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit('wrong-message-1', 'wrong message 1'),
|
||||
buildResponseCommit('wrong-message-2', 'wrong message 2'),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-message-1',
|
||||
message: 'wrong message 1',
|
||||
},
|
||||
{
|
||||
id: 'wrong-message-2',
|
||||
message: 'wrong message 2',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
|
||||
await runAction()
|
||||
|
|
@ -179,21 +163,19 @@ describe('Commit Linter action', () => {
|
|||
it('should pass for push range with wrong messages with failOnErrors set to false', async () => {
|
||||
td.when(mockCore.getInput('failOnErrors')).thenReturn('false')
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit('wrong-message-1', 'wrong message 1'),
|
||||
buildResponseCommit('wrong-message-2', 'wrong message 2'),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-message-1',
|
||||
message: 'wrong message 1',
|
||||
},
|
||||
{
|
||||
id: 'wrong-message-2',
|
||||
message: 'wrong message 2',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
||||
|
|
@ -208,21 +190,19 @@ describe('Commit Linter action', () => {
|
|||
it('should pass for push range with correct messages with failOnErrors set to false', async () => {
|
||||
td.when(mockCore.getInput('failOnErrors')).thenReturn('false')
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit('correct-message-1', 'chore: correct message 1'),
|
||||
buildResponseCommit('correct-message-2', 'chore: correct message 2'),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'correct-message-1',
|
||||
message: 'chore: correct message 1',
|
||||
},
|
||||
{
|
||||
id: 'correct-message-2',
|
||||
message: 'chore: correct message 2',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
||||
|
|
@ -234,21 +214,19 @@ describe('Commit Linter action', () => {
|
|||
|
||||
it('should pass for push range with correct messages', async () => {
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit('correct-message-1', 'chore: correct message 1'),
|
||||
buildResponseCommit('correct-message-2', 'chore: correct message 2'),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'correct-message-1',
|
||||
message: 'chore: correct message 1',
|
||||
},
|
||||
{
|
||||
id: 'correct-message-2',
|
||||
message: 'chore: correct message 2',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
||||
|
|
@ -263,23 +241,14 @@ describe('Commit Linter action', () => {
|
|||
td.when(mockCore.getInput('configFile')).thenReturn(
|
||||
'./commitlint.config.yml',
|
||||
)
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit(
|
||||
'correct-message',
|
||||
'chore(wrong): not including package scope',
|
||||
),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
message: 'chore(wrong): not including package scope',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
|
||||
await runAction()
|
||||
|
|
@ -294,23 +263,15 @@ describe('Commit Linter action', () => {
|
|||
td.when(mockCore.getInput('configFile')).thenReturn(
|
||||
'./commitlint.config.yml',
|
||||
)
|
||||
await createPushEventPayload(cwd)
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit(
|
||||
'correct-message',
|
||||
'chore(second-package): this works',
|
||||
),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'correct-message',
|
||||
message: 'chore(second-package): this works',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
||||
|
|
@ -324,20 +285,12 @@ describe('Commit Linter action', () => {
|
|||
td.when(mockCore.getInput('configFile')).thenReturn(
|
||||
'./commitlint.config.mjs',
|
||||
)
|
||||
await createPushEventPayload(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit(
|
||||
'wrong-message',
|
||||
'ib-21212121212121: without jira ticket',
|
||||
),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-message',
|
||||
message: 'ib-21212121212121: without jira ticket',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
|
|
@ -372,18 +325,8 @@ describe('Commit Linter action', () => {
|
|||
'./commitlint.config.mjs',
|
||||
)
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd, { commits: [] }, '12345')
|
||||
await createPushEventPayload(cwd, {})
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '12345',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [],
|
||||
})
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
||||
|
|
@ -411,7 +354,7 @@ describe('Commit Linter action', () => {
|
|||
await createPullRequestEventPayload(cwd)
|
||||
updatePullRequestEnvVars(cwd, { eventName })
|
||||
td.when(
|
||||
mockListPullCommits({
|
||||
mockListCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
pull_number: '1',
|
||||
|
|
@ -477,7 +420,7 @@ describe('Commit Linter action', () => {
|
|||
await createPullRequestEventPayload(cwd)
|
||||
updatePullRequestEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPullCommits({
|
||||
mockListCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
pull_number: '1',
|
||||
|
|
@ -505,25 +448,15 @@ describe('Commit Linter action', () => {
|
|||
})
|
||||
|
||||
describe("when there's a single commit with correct message", () => {
|
||||
const commit = buildResponseCommit(
|
||||
'correct-commit',
|
||||
'chore: correct message',
|
||||
)
|
||||
const commit = {
|
||||
id: 'correct-message',
|
||||
message: 'chore: correct message',
|
||||
}
|
||||
|
||||
beforeEach(async () => {
|
||||
cwd = await git.bootstrap('fixtures/conventional', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
await createPushEventPayload(cwd, { commits: [commit] })
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [commit],
|
||||
})
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
})
|
||||
|
|
@ -543,8 +476,8 @@ describe('Commit Linter action', () => {
|
|||
it('should generate a JSON output of the messages', async () => {
|
||||
const expectedResultsOutput = [
|
||||
{
|
||||
hash: commit.sha,
|
||||
message: commit.commit.message,
|
||||
hash: commit.id,
|
||||
message: commit.message,
|
||||
valid: true,
|
||||
errors: [],
|
||||
warnings: [],
|
||||
|
|
@ -574,19 +507,6 @@ describe('Commit Linter action', () => {
|
|||
await createPushEventPayload(cwd, {
|
||||
commits: [commitWithWarning, correctCommit],
|
||||
})
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit(commitWithWarning.id, commitWithWarning.message),
|
||||
buildResponseCommit(correctCommit.id, correctCommit.message),
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
|
@ -660,20 +580,6 @@ describe('Commit Linter action', () => {
|
|||
await createPushEventPayload(cwd, {
|
||||
commits: [wrongCommit, commitWithWarning],
|
||||
})
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit(wrongCommit.id, wrongCommit.message),
|
||||
buildResponseCommit(commitWithWarning.id, commitWithWarning.message),
|
||||
],
|
||||
})
|
||||
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
|
@ -729,23 +635,15 @@ describe('Commit Linter action', () => {
|
|||
describe('when commit contains required signed-off-by message', () => {
|
||||
beforeEach(async () => {
|
||||
cwd = await git.bootstrap('fixtures/signed-off-by', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit(
|
||||
'correct-commit',
|
||||
'chore: correct message\n\nsome context without leading blank line.\n\nSigned-off-by: John Doe <john.doe@example.com>',
|
||||
),
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'correct-commit',
|
||||
message:
|
||||
'chore: correct message\n\nsome context without leading blank line.\n\nSigned-off-by: John Doe <john.doe@example.com>',
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
|
|
@ -762,16 +660,13 @@ describe('Commit Linter action', () => {
|
|||
describe('when a different helpUrl is provided in the config', () => {
|
||||
beforeEach(async () => {
|
||||
cwd = await git.bootstrap('fixtures/custom-help-url', process.cwd())
|
||||
await createPushEventPayload(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [buildResponseCommit('wrong-commit', 'wrong message')],
|
||||
await createPushEventPayload(cwd, {
|
||||
commits: [
|
||||
{
|
||||
id: 'wrong-commit',
|
||||
message: 'wrong message',
|
||||
},
|
||||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
|
|
@ -803,19 +698,6 @@ describe('Commit Linter action', () => {
|
|||
],
|
||||
})
|
||||
updatePushEnvVars(cwd)
|
||||
td.when(
|
||||
mockListPushCommits({
|
||||
owner: 'wagoid',
|
||||
repo: 'commitlint-github-action',
|
||||
per_page: 100,
|
||||
sha: '00000',
|
||||
}),
|
||||
).thenResolve({
|
||||
data: [
|
||||
buildResponseCommit('correct-commit', 'chore: correct message 2'),
|
||||
buildResponseCommit(incorrectCommit.id, incorrectCommit.message),
|
||||
],
|
||||
})
|
||||
td.replace(process, 'cwd', () => cwd)
|
||||
td.replace(console, 'log')
|
||||
})
|
||||
|
|
|
|||
|
|
@ -19,26 +19,16 @@ export const updatePushEnvVars = (cwd) => {
|
|||
|
||||
export const createPushEventPayload = async (
|
||||
cwd,
|
||||
commits = null,
|
||||
before = null,
|
||||
{ forced = false, headCommit = null, commits = [] },
|
||||
) => {
|
||||
const payload = {
|
||||
forced: false,
|
||||
head_commit: null,
|
||||
before: before || '00000',
|
||||
commits: commits || [
|
||||
{
|
||||
id: 'ignored',
|
||||
message: 'but needed for triggering',
|
||||
},
|
||||
],
|
||||
forced,
|
||||
head_commit: headCommit,
|
||||
commits,
|
||||
}
|
||||
const eventPath = path.join(cwd, 'pushEventPayload.json')
|
||||
|
||||
updateEnvVars({
|
||||
GITHUB_EVENT_PATH: eventPath,
|
||||
GITHUB_REPOSITORY: 'wagoid/commitlint-github-action',
|
||||
})
|
||||
updateEnvVars({ GITHUB_EVENT_PATH: eventPath })
|
||||
await writeFile(eventPath, JSON.stringify(payload), 'utf8')
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue