-
Notifications
You must be signed in to change notification settings - Fork 23
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
feat: add looping for lint #481
Conversation
✅ Deploy Preview for lula-docs canceled.
|
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.
Great first pass - I have a few modifications we should consider:
This will fail on the first document that fails linting and exit - optimally the workflow would lint all files and report on which are passing AND failing in some capacity. This prevents the cycle of fixing one file at a time.
This could be iterating through the loop as implemented - identifying pass/fail with some information and once all files have been evaluated then indicating overall success/failure.
Looking to prevent scope creep here - I do not believe:
validation.WriteValidationResult(validationResp.Result, opts.ResultFile)
will handle appending to a result file (currently intended for a single write operation). Meaning we need to update the go-oscal function or develop a stop-gap in the interim.
Focus on the core logic - will evaluate go-oscal
Open to feedback
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.
Agree with @brandtkeller's changes, nothing else stood out me!
* refactor!(common): #388 update common/types (and all references) to use pointers * refactor!(common): #388 update Domain struct to use pointers * refactor!(common): #388 update Provider struct to use pointers * refactor!(evaluate): #388 EvaluateResults now uses pointers refactor!(component): change NewOscalComponentDefinitionFromBytes to return a pointer * refactor!(resource-store): #388 changed AddFromLink params to use pointers, updated references * refactor!(assessment-results): #388 NewAssessmentResults now returns a pointer * refactor!(catalog): now runs validation rather than requiring the source for the extension refactor!(catalog): now uses pointers * refactor!(component): #388 NewOscalComponentDefinition no longer uses source in favor of oscal validation refactor!(component): delete the NewOscalComponentDefinitionFromBytes method in favor of NewOscalComponentDefinition refactor!(common): rename WriteFile -> WriteOscalModel refactor(generate): WriteFile -> WriteOscalModel refactor(composition): removed validation logic in favor of NewOscalCOmponentDefinition handling it feat(common): WriteOscalModel now handles json file extensions feat(evaluate): now runs file extension validation for json/yaml feat(validate): now checks input file for extension tests: update tests, update test data to pass oscal validation * refactor!(common): #388 moved WriteOscalModel to the oscal package (complete-schema) * feat(oscal): create the multiModelValidate method for use in oscal constructors and updated all relavant constructors * refactor!(component): #388 update mergeComponents and ComponentFromCatalog to use pointers refactor(generate): update all refs to ComponentFromCatalog * initial resource creation * refactor(component): pointer refactor * fix(component): failing e2e * refactor(component): ControlToImplementRequirement now takes pointer to control * fix(common): add omitempty to the marshalling for Validation * refactor!(domains/kubernetes): #388 KubernetesSpec.Wait and Resource.ResourceRule are now pointers and have omitempty, updated all references * refactor!(domains/kubernetes): #388 ResourceRule.Field is now a pointer and has omitempty tag * refactor!(providers/kyverno): #388 KyvernoSpec is now a pointer * refactor!(providers/opa): #388 OpaSpec is now a pointer * refactor(providers): add omitempty to Kyverno and opa spec tags * refactor!(providers): update output fields to be pointers * refactor!(domains): update api and k8s domain specs to be pointers * refactor!(types): #388 update LulaValidation provider, domain, domain-resources and result to use pointers * fix(evaluate): add nil check on thresholdResult and newResult to top of method to prevent nil pointer * chore(validate): add TODO to remove WriteReport as it is unused (question) * fix: graceful exit conditions, empty result pointer * feat: merged pointers * feat: updated error handling, initial docs and flag functions * feat: added flags to lula validate * feat: added requirement-store, updated validation * feat(validate): updated validation refactor, other small fixes * feat: added tests, dev command updates * fix(dev): updated tests, fixed dev cmd issues * fix: refactor yaml multi doc functionality * fix: get-resources read from stdin * fix: remove debug file * fix: clean-up per comments * Update src/pkg/message/interactive.go clarifying confirmation text Co-authored-by: Brandt Keller <[email protected]> * docs: description of assessments and failure conditions * feat(validate): non-interactive flag added * fix(dev): get-resources missing validation opt * fix: clean-up create resources * add staticResources check before execution * fix: updated create observation fcn and usage --------- Co-authored-by: Cole (Mike) Winberry <[email protected]> Co-authored-by: Cole (Mike) Winberry <[email protected]> Co-authored-by: Brandt Keller <[email protected]>
| datasource | package | from | to | | ---------- | ---------------------- | ------ | ------ | | go | github.com/spf13/cobra | v1.8.0 | v1.8.1 | Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
#472) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
| datasource | package | from | to | | ----------- | -------------------- | ------- | -------- | | github-tags | github/codeql-action | v3.25.8 | v3.25.10 | Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…4.3 (#470) | datasource | package | from | to | | ---------- | ----------------------------------- | ------ | ------ | | go | github.com/defenseunicorns/go-oscal | v0.4.1 | v0.4.3 | Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
| datasource | package | from | to | | ----------- | ---------------- | ------ | ------ | | github-tags | actions/checkout | v4.1.6 | v4.1.7 | Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…5.0 (#492) * chore(deps): update module github.com/defenseunicorns/go-oscal to v0.5.0 | datasource | package | from | to | | ---------- | ----------------------------------- | ------ | ------ | | go | github.com/defenseunicorns/go-oscal | v0.4.3 | v0.5.0 | * chore(lint): update lint with new go-oscal ValidationCommand changes * chore(tests): update pod_validation_test with new usage of ValidationCommand * chore(tests): update e2e pod_validation_test to use JsonSchemaError for validation failures --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cole (Mike) Winberry <[email protected]>
… now handles multiple validation results
…prior to deciding exit state, still bails on non-validation errors as they happen
fix(lint): lint now waits until exiting the loop to write to file, handles multiple validation results
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.
Operating as expected - walked through a few workflows and received intended results.
Description
Adds loop for lula lint.
Removed mention of yaml to future proof for xml (sorry for anyone reading that manually) and json.
Changed wording around single files to multiple files.
Related Issue
Fixes: #480
Type of change
Checklist before merging