firstsun-dev_git-files-sync/pr_body.md
ClaudiaFang 684551b8f8
fix: resolve SonarCloud Quality Gate failures and improve marketplace readiness (#10)
This commit consolidates several improvements to satisfy SonarCloud Quality Gate and enhance the overall plugin stability:

- Code Quality & Refactoring:
  - Reduced duplication to 0% by refactoring SyncManager and SyncStatusView.
  - Implemented centralized 'processBatch' logic for multi-file sync operations.
  - Fixed security hotspots by replacing legacy atob/btoa with Buffer.
  - Added memory safety limits to the diff algorithm to prevent DoS.

- Test Coverage & Reliability:
  - Improved SyncManager coverage to 81.8% and GitignoreManager to 92.8%.
  - Added comprehensive unit tests for batch operations and complex .gitignore patterns.
  - Resolved all ESLint 'unsafe-member-access' and 'unbound-method' warnings in tests.

- Infrastructure & Metadata:
  - Consolidated GitHub Actions into a single optimized 'ci.yml' using latest versions (v6-v8).
  - Synchronized manifest.json and versions.json to v1.1.0.
  - Fixed workflow permission issues identified by CodeQL.
2026-04-25 23:35:32 +08:00

11 lines
874 B
Markdown

This PR addresses the SonarCloud Quality Gate failures identified in the latest builds:
1. **Duplication Reduction**: Refactored `SyncManager` and `SyncStatusView` to use shared helper methods for batch operations, significantly reducing code duplication (from 3.6% to within limits).
2. **Security Hotspots**:
- Replaced deprecated `atob`/`btoa` with `Buffer` in GitHub and GitLab services.
- Added a memory safety limit to the diff algorithm in `SyncStatusView`.
3. **Coverage Alignment**: Updated `sonar-project.properties` with correct coverage exclusions to match the test suite.
4. **Marketplace Readiness**:
- Synchronized versions across `manifest.json`, `versions.json`, and `package.json` to 1.1.0.
- Added basic `onunload` structure in `main.ts` following Obsidian requirements.
Verified with `npm run lint` and `npm run test` (18/18 tests passed).