-
Notifications
You must be signed in to change notification settings - Fork 21
feat: Add extension mechanism for third-party tools in .project format #131
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 our terms of service and privacy 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?
Conversation
247f71b to
e1d9481
Compare
|
@mlieberman85 Is this close to what you were thinking? |
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.
Pull request overview
This PR implements an extension mechanism that allows third-party tools to store configuration within .project files without conflicts. It introduces the Extension and ExtensionMetadata types, validation logic to enforce schema version requirements (>= 1.1.0) and naming conventions, and comprehensive tests for the new functionality.
Changes:
- Added
ExtensionandExtensionMetadatastructs to support tool-specific configurations - Implemented validation for extensions including schema version checks, reserved name protection, name format validation, and metadata URL validation
- Added comprehensive test coverage for extension validation scenarios and backward compatibility
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| utilities/dot-project/types.go | Defines new Extension and ExtensionMetadata types with schema version constant |
| utilities/dot-project/validator.go | Implements validation functions for extensions with reserved name checking and URL validation |
| utilities/dot-project/extensions_test.go | Provides comprehensive test coverage for extension validation logic |
| utilities/dot-project/yaml/test-project.yaml | Updates schema version and adds example extension configuration |
| utilities/dot-project/README.md | Documents the extensions feature with usage examples and naming rules |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
I think so. I'm out of the country but should be back on Thursday. I'll try and make a demo of the sorts of things, but I think this PR probably hits most of them. |
Signed-off-by: Aaravanand00 <aaravanand5749@gmail.com>
- Replace string comparison with proper numeric comparison for semantic versions - Fix edge case where '1.10.0' was incorrectly considered less than '1.2.0' - Add comprehensive test cases including multi-digit version components - Add proper error handling for invalid version formats Addresses GitHub Copilot suggestions in PR review. Signed-off-by: Aaravanand00 <aaravanand5749@gmail.com>
cb702b8 to
eff3e03
Compare
|
Hi @jeefy and @mlieberman85 sir Copilot Feedback Addressed Fixed both issues:
Also added DCO signatures for compliance. All tests passing Ready for your review - let me know if any other changes needed. |
Implements extension mechanism for third-party tools in
.projectformat, resolving #125.Changes
New Types (
types.go)Extensionstruct for tool-specific configurationExtensionMetadatastruct for author, homepage, repository, license, versionValidation (
validator.go)name,description, etc. cannot be used as extension keys)Tests (
extensions_test.go)Documentation (
README.md)Example Usage