Skip to content

Commit

Permalink
Revert "Remove old autofix logic (#1687)"
Browse files Browse the repository at this point in the history
This reverts commit f57eb0e.
  • Loading branch information
AaronMoat authored Oct 6, 2024
1 parent 070b4da commit 8ad43de
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/cli/lint/autofix.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import simpleGit from 'simple-git';

import * as Buildkite from '../../api/buildkite';
import * as Git from '../../api/git';
import * as GitHub from '../../api/github';
import { runESLint } from '../adapter/eslint';
Expand All @@ -16,6 +17,7 @@ import { internalLint } from './internal';
jest.mock('simple-git');
jest.mock('../../api/git');
jest.mock('../../api/github');
jest.mock('../../api/buildkite');
jest.mock('../adapter/eslint');
jest.mock('../adapter/prettier');
jest.mock('./internal');
Expand Down Expand Up @@ -123,6 +125,23 @@ describe('autofix', () => {
expectNoAutofix();
});

it('bails on a renovate branch when there is no open pull request', async () => {
jest.mocked(Git.currentBranch).mockResolvedValue('renovate-skuba-7.x');
jest
.mocked(GitHub.getPullRequestNumber)
.mockRejectedValue(
new Error(
`Commit cdd1520 is not associated with an open GitHub pull request`,
),
);

await expect(autofix(params)).resolves.toBeUndefined();

expect(Buildkite.annotate).toHaveBeenCalled();

expectNoAutofix();
});

it('suceeds on a renovate branch when there is an open pull request associated with the commit', async () => {
jest.mocked(Git.currentBranch).mockResolvedValue('renovate-skuba-7.x');
jest.mocked(GitHub.getPullRequestNumber).mockResolvedValue(6);
Expand Down
18 changes: 18 additions & 0 deletions src/cli/lint/autofix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { inspect } from 'util';

import simpleGit from 'simple-git';

import * as Buildkite from '../../api/buildkite';
import * as Git from '../../api/git';
import * as GitHub from '../../api/github';
import { isCiEnv } from '../../utils/env';
Expand All @@ -15,6 +16,8 @@ import { createDestinationFileReader } from '../configure/analysis/project';
import { internalLint } from './internal';
import type { Input } from './types';

const RENOVATE_DEFAULT_PREFIX = 'renovate';

const AUTOFIX_COMMIT_MESSAGE = 'Run `skuba format`';

export const AUTOFIX_IGNORE_FILES_BASE: Git.ChangedFile[] = [
Expand Down Expand Up @@ -63,6 +66,21 @@ const shouldPush = async ({
return false;
}

if (currentBranch?.startsWith(RENOVATE_DEFAULT_PREFIX)) {
try {
await GitHub.getPullRequestNumber();
} catch {
const warning =
'An autofix is available, but it was not pushed because an open pull request for this Renovate branch could not be found. If a pull request has since been created, retry the lint step to push the fix.';
log.warn(warning);
try {
await Buildkite.annotate(Buildkite.md.terminal(warning));
} catch {}

return false;
}
}

let headCommitMessage;
try {
headCommitMessage = await Git.getHeadCommitMessage({ dir });
Expand Down

0 comments on commit 8ad43de

Please sign in to comment.