- Notifications
You must be signed in to change notification settings - Fork1
chore: add JetBrains auto-approval compliance linter#139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Implements comprehensive linting to ensure compliance with JetBrainsauto-approval requirements for Toolbox plugins.Features:- Shell script for JetBrains compliance checking- Detekt integration for code quality- GitHub Actions workflow for CI/CD- Comprehensive documentationCompliance checks:- Forbidden experimental API usage detection- Manual thread creation warnings- Java runtime hooks detection- Library bundling warnings- Coroutines best practicesBased on clarified requirements from JetBrains team allowing:- coroutineScope.launch usage- Library-managed threads (with proper cleanup)- Some coroutines experimental APIs (select, onTimeout)Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
} | ||
// Configure detekt for code quality reporting | ||
tasks.withType<io.gitlab.arturbosch.detekt.Detekt>().configureEach { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Minor: we can do a static import here.
@@ -0,0 +1,102 @@ | |||
#!/bin/bash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
any reason for not configuring the rules in a detekt.yml?
https://detekt.dev/docs/rules/style/#forbiddenannotation
🎯 JetBrains Auto-Approval Compliance Linter
This PR implements a comprehensive linting system to ensure compliance with JetBrains auto-approval requirements for Toolbox plugins.
📋 What's Included
1.JetBrains Compliance Check Script
scripts/jetbrains-compliance-check.sh
- Shell script for critical compliance checking2.Detekt Integration
build.gradle.kts
with reasonable defaults3.CI/CD Integration
.github/workflows/jetbrains-compliance.yml
4.Documentation
JETBRAINS_COMPLIANCE.md
- Comprehensive guide✅ Compliance Requirements Covered
Based on JetBrains team communication:
Forbidden (Critical Violations):
Allowed (With Guidance):
coroutineScope.launch
for concurrencyselect
,onTimeout
)CoderRemoteProvider#close()
🧪 Testing
Current Status:
$ ./scripts/jetbrains-compliance-check.sh✅ No critical violations found! Your code appears to comply with JetBrains auto-approval requirements.
Code Quality:
🚀 Usage
Local Development:
CI/CD:
📝 Changes Made
build.gradle.kts
gradle/libs.versions.toml
with detekt version🔍 Review Notes
This ensures the plugin maintains JetBrains auto-approval status while providing helpful guidance to developers.
📊 Current Results
The current codebase shows:
RunnableActionDescription
interface usage (acceptable)Testing: ✅ Tested locally, compliance script passes
Documentation: ✅ Comprehensive docs included
CI/CD: ✅ GitHub Actions workflow ready
Breaking Changes: ❌ None - fully backward compatible