diff --git a/.github/workflows/auto-fix-lint-format-commit.yml b/.github/workflows/auto-fix-lint-format-commit.yml new file mode 100644 index 0000000..46c0150 --- /dev/null +++ b/.github/workflows/auto-fix-lint-format-commit.yml @@ -0,0 +1,56 @@ +name: Auto Fix Lint and Format + +on: + pull_request_target: + types: [opened, synchronize] + +jobs: + auto-fix: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.head_ref }} + repository: ${{ github.event.pull_request.head.repo.full_name }} + + - name: Set up Bun + uses: oven-sh/setup-bun@v1 + with: + bun-version: "latest" + + - name: Install dependencies + run: bun install + + - name: Run linter and fix issues + run: bun run lint:fix + + - name: Run formatter + run: bun run format + + - name: Check for changes + id: check_changes + run: | + git diff --exit-code || echo "has_changes=true" >> $GITHUB_ENV + + - name: Commit and push changes + if: steps.check_changes.outputs.has_changes == 'true' || env.has_changes == 'true' + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "chore: auto-fix linting and formatting issues" + commit_options: "--no-verify" + file_pattern: "." + + - name: Add PR comment + if: steps.check_changes.outputs.has_changes == 'true' || env.has_changes == 'true' + uses: actions/github-script@v7 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'Linting and formatting issues were automatically fixed. Please review the changes.' + }); diff --git a/eslint.config.js b/eslint.config.js index 6e52df8..d796e6f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -19,9 +19,10 @@ export default tseslint.config( }, rules: { ...reactHooks.configs.recommended.rules, - "react-refresh/only-export-components": ["warn", { allowConstantExport: true }], + "react-refresh/only-export-components": "off", "react-hooks/exhaustive-deps": "off", "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-object-type": "off", }, }, ) diff --git a/package.json b/package.json index 8626298..460f159 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ "dev": "vite", "build": "tsc -b && vite build", "lint": "eslint .", + "lint:fix": "eslint --fix .", + "format": "prettier --write .", "preview": "vite preview" }, "dependencies": {