feat: add nightly branch workflow

This commit is contained in:
GitHub Actions
2026-01-13 22:11:28 +00:00
parent d27c925ba5
commit 4adcd9eda1
187 changed files with 8897 additions and 1614 deletions

View File

@@ -7,6 +7,7 @@
## Executive Summary
This audit examined the Charon project for unused code elements using the following linting tools:
1. **Go Vet** - Static analysis for Go code
2. **Staticcheck** - Advanced Go linter
3. **ESLint** - Frontend JavaScript/TypeScript linter
@@ -29,14 +30,17 @@ This audit examined the Charon project for unused code elements using the follow
### 1.1 Unused Variables
#### File: `internal/services/certificate_service_test.go`
- **Line:** 397
- **Issue:** Value of `err` is never used
- **Code Context:**
```go
// Line 397
err := someOperation()
// err is assigned but never checked or used
```
- **Severity:** Medium
- **Recommendation:** Either check the error with proper error handling or use `_ = err` if intentionally ignoring
- **Safe to Remove:** No - Needs review. Error should be handled or explicitly ignored.
@@ -59,13 +63,16 @@ The Go codebase is generally very clean with minimal unused code.
### 2.1 Unused Variables
#### File: `frontend/src/components/CredentialManager.tsx`
- **Line:** 370
- **Variable:** `zone_filter`
- **Code Context:**
```tsx
const { zone_filter, ...rest } = prev
return rest
```
- **Severity:** Low
- **Recommendation:** This is a destructuring assignment used to remove `zone_filter` from the object. This is intentional and follows the pattern of "destructuring to omit properties".
- **Safe to Remove:** No - This is intentional code, not unused.
@@ -76,7 +83,7 @@ The Go codebase is generally very clean with minimal unused code.
The frontend linter reported 56 warnings about using `any` type. These are **NOT** unused code issues but rather type safety warnings.
#### Distribution by File:
#### Distribution by File
| File | Count | Lines |
|------|-------|-------|
@@ -95,9 +102,10 @@ The frontend linter reported 56 warnings about using `any` type. These are **NOT
**Total:** 56 instances
#### Example Instances:
#### Example Instances
**File:** `src/components/CredentialManager.tsx`
```tsx
// Line 71
const handleChange = (field: string, value: any) => { // ⚠️ any type
@@ -116,6 +124,7 @@ catch (error: any) { // ⚠️ any type
```
**File:** `src/components/DNSProviderForm.tsx`
```tsx
// Line 67
const handleCredentialChange = (field: string, value: any) => { // ⚠️ any type
@@ -138,25 +147,30 @@ const getFieldValue = (field: string): any => { // ⚠️ any type
## 3. Detailed Findings by Category
### 3.1 Unused Imports
**Status:** ✅ None found
No unused imports were detected in either backend or frontend code.
### 3.2 Unused Functions
**Status:** ✅ None found
No unused functions were detected in either backend or frontend code.
### 3.3 Unused Constants
**Status:** ✅ None found
No unused constants were detected in either backend or frontend code.
### 3.4 Unused Variables
**Backend:** 1 issue (unused error value)
**Frontend:** 1 false positive (intentional destructuring pattern)
### 3.5 Unused Type Parameters
**Status:** ✅ None found
---
@@ -166,9 +180,11 @@ No unused constants were detected in either backend or frontend code.
### 4.1 Immediate Actions
#### High Priority
None
#### Medium Priority
1. **Fix Backend Error Handling** (`internal/services/certificate_service_test.go:397`)
- Review the error assignment and add proper error handling
- If intentionally ignoring, use `_ = err` with a comment explaining why
@@ -176,13 +192,16 @@ None
### 4.2 Code Quality Improvements
#### Replace `any` Types (Low Priority)
The 56 instances of `any` type should be replaced with proper TypeScript types:
- **Test files:** Consider using `unknown` or specific mock types
- **Error handlers:** Use `Error` or `unknown` type
- **Event handlers:** Use proper React event types
- **Generic handlers:** Create proper type definitions
**Example Refactoring:**
```tsx
// Before
catch (error: any) {
@@ -200,7 +219,9 @@ catch (error: unknown) {
```
#### False Positive Handling
For the `zone_filter` variable in `CredentialManager.tsx:370`, add an ESLint disable comment if the warning is bothersome:
```tsx
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { zone_filter, ...rest } = prev
@@ -211,28 +232,36 @@ const { zone_filter, ...rest } = prev
## 5. Linting Tool Outputs
### 5.1 Go Vet Output
```
Exit code: 0
```
**Result:** No issues found
### 5.2 Staticcheck Output
```
internal/services/certificate_service_test.go:397:3: this value of err is never used (SA4006)
Exit code: 1
```
**Result:** 1 issue found
### 5.3 Frontend ESLint Output
```
✖ 56 problems (0 errors, 56 warnings)
```
**Result:** 56 type safety warnings (not unused code)
### 5.4 TypeScript Type Check Output
```
Exit code: 0
```
**Result:** No type errors
---
@@ -240,6 +269,7 @@ Exit code: 0
## 6. Code Coverage Context
The project demonstrates excellent code hygiene with:
- No unused imports
- No unused functions
- Minimal unused variables
@@ -253,18 +283,24 @@ The only actual unused code issue is a single unused error value in a test file,
## 7. Summary and Action Items
### Critical Issues
**Count:** 0
### Important Issues
**Count:** 1
- [ ] Fix unused error value in `certificate_service_test.go:397`
### Suggested Improvements
**Count:** 57
- [ ] Replace `any` types with proper TypeScript types (56 instances)
- [ ] Consider adding ESLint directive for intentional destructuring pattern (1 instance)
### Overall Assessment
**Status:** ✅ Excellent
The codebase is remarkably clean with minimal unused code. The only true unused code issue is a single error value in a test file. The majority of linting warnings are related to type safety (use of `any`), not unused code.
@@ -274,12 +310,14 @@ The codebase is remarkably clean with minimal unused code. The only true unused
## 8. Appendix: Tool Configuration
### Linting Tools Used
1. **Go Vet** - `go vet ./...`
2. **Staticcheck** - `staticcheck ./...`
3. **ESLint** - `npm run lint`
4. **TypeScript** - `npm run type-check`
### Excluded Patterns
- `node_modules/`
- `bower_components/`
- Generated files