By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
This PR continues the work started in #876, focusing on automating TypeScript linting.
Key changes:
The TypeScript linter now runs automatically on every PR only if TypeScript files are modified.
Replaces the previous, stricter ruleset with a much more lenient configuration.
This configuration allows for the addition of rules slowly, instead of "everything all at once"
Removes the "typescript recommended" ruleset.
Currently, only semicolon-related issues are treated as errors.
@typescript-eslint/no-unused-vars is now treated as a warning to avoid blocking this PR. Once those warnings are resolved across the codebase, we plan to elevate it to an error level.
Auto-fixed most existing semicolon-related issues for consistency.
How to test?
Create or update a PR that modifies .ts or .tsx files.
Confirm that the linter runs automatically via GitHub Actions.
Ensure the CI only fails on semicolon issues, not on unused variable warnings.
P.S. If you have any more requests on DevOps/automation work, please let me know, I'll be happy to help :)
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/fosrl/pangolin/pull/878
**Author:** [@thijsvanloef](https://github.com/thijsvanloef)
**Created:** 6/9/2025
**Status:** ✅ Merged
**Merged:** 6/10/2025
**Merged by:** [@oschwartz10612](https://github.com/oschwartz10612)
**Base:** `dev` ← **Head:** `fix/linting`
---
### 📝 Commits (3)
- [`097dafb`](https://github.com/fosrl/pangolin/commit/097dafb5534d60bc43df6f4f359e9facf1dcfc5f) enable automated linting
- [`3ee9051`](https://github.com/fosrl/pangolin/commit/3ee9051bc17f0cb5f05b6e7fa5af1b19bae4d068) change naming
- [`cbca88f`](https://github.com/fosrl/pangolin/commit/cbca88f76bdceee28f0cc2857dc0273ef659dfdd) fix semi colons
### 📊 Changes
**23 files changed** (+311 additions, -270 deletions)
<details>
<summary>View changed files</summary>
➕ `.github/workflows/linting.yml` (+34 -0)
📝 `eslint.config.js` (+16 -9)
📝 `server/lib/stoi.ts` (+1 -1)
📝 `server/routers/auth/logout.ts` (+1 -1)
📝 `server/setup/scriptsSqlite/1.0.0-beta6.ts` (+2 -2)
📝 `src/components/ui/avatar.tsx` (+11 -11)
📝 `src/components/ui/breadcrumb.tsx` (+21 -21)
📝 `src/components/ui/collapsible.tsx` (+6 -6)
📝 `src/components/ui/command.tsx` (+27 -27)
📝 `src/components/ui/dropdown-menu.tsx` (+31 -31)
📝 `src/components/ui/input-otp.tsx` (+17 -17)
📝 `src/components/ui/label.tsx` (+9 -9)
📝 `src/components/ui/popover.tsx` (+9 -9)
📝 `src/components/ui/radio-group.tsx` (+12 -12)
📝 `src/components/ui/scroll-area.tsx` (+7 -7)
📝 `src/components/ui/select.tsx` (+23 -23)
📝 `src/components/ui/separator.tsx` (+7 -7)
📝 `src/components/ui/sheet.tsx` (+24 -24)
📝 `src/components/ui/switch.tsx` (+7 -7)
📝 `src/components/ui/tabs.tsx` (+12 -12)
_...and 3 more files_
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Description
This PR continues the work started in [#876](https://github.com/fosrl/pangolin/pull/876), focusing on automating TypeScript linting.
Key changes:
- The TypeScript linter now runs automatically on every PR only if TypeScript files are modified.
- Replaces the previous, stricter ruleset with a much more lenient configuration.
- This configuration allows for the addition of rules slowly, instead of "everything all at once"
- Removes the "typescript recommended" ruleset.
- Currently, only semicolon-related issues are treated as errors.
- `@typescript-eslint/no-unused-vars` is now treated as a warning to avoid blocking this PR. Once those warnings are resolved across the codebase, we plan to elevate it to an error level.
- Auto-fixed most existing semicolon-related issues for consistency.
## How to test?
1. Create or update a PR that modifies .ts or .tsx files.
2. Confirm that the linter runs automatically via GitHub Actions.
3. Ensure the CI only fails on semicolon issues, not on unused variable warnings.
#### P.S. If you have any more requests on DevOps/automation work, please let me know, I'll be happy to help :)
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/pangolin/pull/878
Author: @thijsvanloef
Created: 6/9/2025
Status: ✅ Merged
Merged: 6/10/2025
Merged by: @oschwartz10612
Base:
dev← Head:fix/linting📝 Commits (3)
097dafbenable automated linting3ee9051change namingcbca88ffix semi colons📊 Changes
23 files changed (+311 additions, -270 deletions)
View changed files
➕
.github/workflows/linting.yml(+34 -0)📝
eslint.config.js(+16 -9)📝
server/lib/stoi.ts(+1 -1)📝
server/routers/auth/logout.ts(+1 -1)📝
server/setup/scriptsSqlite/1.0.0-beta6.ts(+2 -2)📝
src/components/ui/avatar.tsx(+11 -11)📝
src/components/ui/breadcrumb.tsx(+21 -21)📝
src/components/ui/collapsible.tsx(+6 -6)📝
src/components/ui/command.tsx(+27 -27)📝
src/components/ui/dropdown-menu.tsx(+31 -31)📝
src/components/ui/input-otp.tsx(+17 -17)📝
src/components/ui/label.tsx(+9 -9)📝
src/components/ui/popover.tsx(+9 -9)📝
src/components/ui/radio-group.tsx(+12 -12)📝
src/components/ui/scroll-area.tsx(+7 -7)📝
src/components/ui/select.tsx(+23 -23)📝
src/components/ui/separator.tsx(+7 -7)📝
src/components/ui/sheet.tsx(+24 -24)📝
src/components/ui/switch.tsx(+7 -7)📝
src/components/ui/tabs.tsx(+12 -12)...and 3 more files
📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
This PR continues the work started in #876, focusing on automating TypeScript linting.
Key changes:
@typescript-eslint/no-unused-varsis now treated as a warning to avoid blocking this PR. Once those warnings are resolved across the codebase, we plan to elevate it to an error level.How to test?
P.S. If you have any more requests on DevOps/automation work, please let me know, I'll be happy to help :)
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.