Commit 937fa610 authored by myishay's avatar myishay
Browse files

fix: add invalid files to yaml/json output

parent 6f697dcc
main 620-disable-spinner-when-detecting-runs-in-ci-to-avoid-messing-up-logs-with-spinner-etc 702-datree-not-working-in-our-air-gapped-environment 746-offline-mode-does-not-work 762-unexpected-yaml-validation-error-did-not-find-expected-indicator DAT-3240-support-pipes DAT-3422-brew-post-install DAT-3451-create-trigger-for-production-release-deployment DAT-3498-prettify-error-messages DAT-3504-pre-release-deployment DAT-3516-set-rules-table-with-a-fixed-size DAT-3753_detect-ci-env DAT-3759_datree_exec_helm_files_docs_link DAT-3759_fix_message_color_and_remove_space DAT-3784-create-yaml-schema-validation-command DAT-3786-simple-output-on-ci DAT-3793_implement_local_schema_validation_logic DAT-3808_report_cli_errors DAT-3815_prompt-helper-kustomize-test DAT-3821_create-token-clientid DAT-3842-add-policy-config-flag DAT-3842-policy-config-flag DAT-3843-create-schema-in-cli-for-policies.yaml-validation DAT-3845_add_offline_flag_in_config_yaml DAT-3873-helm-kustomize-msg-color DAT-3877-skip-k8s-validation DAT-3878_add_--no-record_flag DAT-3879_implement_resource_quotas_custom_keys DAT-3938_bug-fixes DAT-3938_extract-skipping-annotations-policy-check-flow DAT-3958_support_no_intetnet_connection_offline_local DAT-4003-isCi-query-param DAT-4011_evluation-duration DAT-4019_datree-test-validate-yaml-command DAT-4019_datree-validate-yaml-command DAT-4060_validate-yaml-send-result-data DAT-4065-fix-offline-mode DAT-4075-yml-validation-array DAT-4105-remove-validate-yaml DAT-4132-junit-output-fix-crash-invalid-configurations DAT-415-test-exit-code DAT-4341-create-a-new-default-policy-all-rules DAT-4389-verbose-support-all-output-formats DAT-4405-remove-travis-cicd-impl DAT-4427-cli-add-save-rendered-flag DAT-add-architecture-image ISSUE#222_add_developers_guide ISSUE#570_support_customResourceDefinition_kind ISSUE#573_support_JUnit_output_format ISSUE#638_support_schema_validation_in_offline_mode ISSUE#799_pre-commit_permission_denied_fix add-aws-cli add-kustomize-cmd-description add-kustomize-intro add-kustomize-support add-not-strict-flag add-v-tag-rc add_cluster_integration_submodule add_job_in_release_workflow_for_travis_polling add_offline_check_in_k8s_validator add_rego_support add_tests_to_fragile_areas_of_code adjust_error_message_for_k8s_schema_not_found adr-poc argo-rules argoproj auto-assign-workflow changelog_gen_file changelog_goreleaser changelog_latest_release changelog_permissions ci/add_docker_image_build cli_error_reporting_fixes codeowners custom_changelog cverule debug_save_read_default_rules_files default-schema-version delete-dockerignore dima-wrong dockerfile docs docs-template downloads-badge error-misspelling-metadataname fix-CONTAINERS_MISSING_MEMORY_REQUEST_KEY fix-changelog-messages fix-homedir fix-prompt-message fix-properties-default-rules fix-semver-commits fix-type-in-default-rule fix-version-message-print-empty fix_defaultRules_test_files hadar-co-patch-1 helm-links ignore-main-in-commit-message-validation limit-config-set-command line-err logfile logo metadatarule minor_changes_to_policies_yaml_validation nsa-docs nsa-rules nsa-test-files offerings offline_mode_indenify_network_error_fix only-k8s-files-flag patch-1-resove-conflicts perf-files policy-config-description pre_commit_hook_with_datreeci prestoprule print_login_url_from_getPreRunData probe-rules readme-badge readme-contributors rebase_staging refactor_datree_kustomize_test refactor_datree_kustomize_test_2 refactors_in_printers release-0.1.443 release-worflow-wait release/0.14.1-test-yishay release/0.14.17-yishay-test-yishay release/0.14.18 release/0.14.20 release/0.14.26 release/0.14.29 release/0.14.33 release/0.14.36 release/0.14.46 release/0.14.49 release/0.14.62 release/0.14.85 release/0.14.87 release/0.14.90 release/0.14.91 release/0.14.92 release/0.14.93 release/0.14.95 release/0.15.0 release/0.15.16 release/0.15.18 release/0.15.19 release/0.15.21 release/0.15.22 release/0.15.5 release/0.15.51 release/0.15.52 release/1.0.1 release/1.0.15 release/1.0.6 release/1.1.10 release/1.1.14 release/1.1.17 release/1.1.2 release/1.1.20 release/1.1.22 release/1.1.4 release/1.1.5 release/1.1.6 release/1.2.0 release/1.2.10 release/1.2.2 release/1.2.9 release/1.3.0 release/1.3.2 release/1.3.4 release/1.3.5 release/1.4.0 release/1.4.10 release/1.4.13 release/1.4.17 release/1.4.19 release/1.4.20 release/1.4.22 release/1.4.26 release/1.4.28 release/1.4.3 release/1.4.30 release/1.4.32 release/1.4.33 release/1.4.35 release/1.4.37 release/1.4.4 release/1.5.0 release/1.5.15 release/1.5.16 release/1.5.17 release/1.5.19 release/1.5.2 release/1.5.20 release/1.5.25 release/1.5.29 release/1.5.3 release/1.5.30 release/1.5.35 release/1.5.36 release/1.5.37 release/1.5.7 release/1.5.9 release/1.6.0 release/1.6.12 release/1.6.13 release/1.6.14 release/1.6.16 release/1.6.18 release/1.6.19 release/1.6.23 release/1.6.24 release/1.6.25 release/1.6.26 release/1.6.27 release/1.6.28 release/1.6.29 release/1.6.32 release/1.6.33 release/1.6.36 release/1.6.37 release/1.6.40 release/1.6.42 release/1.6.44 release/1.6.46 release/1.6.48 release/1.6.6 release/1.7.1 release/1.7.3 release/1.8.0 release/1.8.1 remove-debug-log remove-homebrew-bottle report_execution_environment resty-client romanlab-patch-1 roy_test_branch running_test_on_non_k8s_yaml_files_with_--only-k8s-files_raises_an_error_#430 sample-policy sarif schemadir secretrules shimont-patch-1 skip-schema-validation-flag slack-button sort_failed_rules_by_uniqe_names staging staging_temp support-new-publish svg-logo temp test-refactor test_pre_commit_hook update-architecture-img update-docs update-hackaton-guide update-readme update_xcode_version_to_13.3_in_travis.yaml upload-install-scripts use_DI_to_get_config_home yishay-test 1.8.2-rc 1.8.1 1.8.1-rc 1.8.0 1.8.0-rc 1.7.3 1.7.3-rc 1.7.2-rc 1.7.1 1.7.1-rc 1.7.0-rc 1.6.49-rc 1.6.48 1.6.48-rc 1.6.47-rc 1.6.46 1.6.46-rc 1.6.45-rc 1.6.44 1.6.44-rc 1.6.43-rc 1.6.42 1.6.42-rc 1.6.41-rc 1.6.40 1.6.40-rc 1.6.39-rc 1.6.38-rc 1.6.37 1.6.37-rc 1.6.36 1.6.36-rc 1.6.35-rc 1.6.34-rc 1.6.33 1.6.33-rc 1.6.32 1.6.32-rc 1.6.31-rc 1.6.30-rc 1.6.29 1.6.29-rc 1.6.28 1.6.28-rc 1.6.27 1.6.27-rc 1.6.26 1.6.26-rc 1.6.25 1.6.25-rc 1.6.24 1.6.24-rc 1.6.23 1.6.23-rc 1.6.22-rc 1.6.21-rc 1.6.20-rc 1.6.19 1.6.19-rc 1.6.18 1.6.18-rc 1.6.17-rc 1.6.16 1.6.16-rc 1.6.15-rc 1.6.14 1.6.14-rc 1.6.13 1.6.13-rc 1.6.12 1.6.12-rc 1.6.11-rc 1.6.10-rc 1.6.9-rc 1.6.8-rc 1.6.7-rc 1.6.6 1.6.6-rc 1.6.5-rc 1.6.4-rc 1.6.3-rc 1.6.2-rc 1.6.1-rc 1.6.0 1.6.0-rc 1.5.38-rc 1.5.37 1.5.37-rc 1.5.36 1.5.36-rc 1.5.35 1.5.35-rc 1.5.34-rc 1.5.33-rc 1.5.32-rc 1.5.31-rc 1.5.30 1.5.30-rc 1.5.29 1.5.29-rc 1.5.28-rc 1.5.27-rc 1.5.26-rc 1.5.25 1.5.25-rc 1.5.24-rc 1.5.23-rc 1.5.22-rc 1.5.21-rc 1.5.20 1.5.20-rc 1.5.19 1.5.19-rc 1.5.18-rc 1.5.17 1.5.17-rc 1.5.16 1.5.16-rc 1.5.15 1.5.15-rc 1.5.14-rc 1.5.13-rc 1.5.12-rc 1.5.11-rc 1.5.10-rc 1.5.9 1.5.9-rc 1.5.8-rc 1.5.7 1.5.7-rc 1.5.6-rc 1.5.5-rc 1.5.4-rc 1.5.3 1.5.3-rc 1.5.2 1.5.2-rc 1.5.1-rc 1.5.0 1.5.0-rc 1.4.40-rc-dima-test 1.4.39-rc 1.4.38-rc 1.4.37 1.4.37-rc 1.4.36-rc 1.4.35 1.4.35-rc 1.4.34-rc 1.4.33 1.4.33-rc 1.4.32 1.4.32-rc 1.4.31-rc 1.4.30 1.4.30-rc 1.4.29-rc 1.4.28 1.4.28-rc 1.4.27-rc 1.4.26 1.4.26-rc 1.4.25-rc 1.4.24-rc 1.4.23-rc 1.4.22 1.4.22-rc 1.4.21-rc 1.4.20 1.4.20-rc 1.4.19 1.4.19-rc 1.4.18-rc 1.4.17 1.4.17-rc 1.4.16-rc 1.4.15-rc 1.4.14-rc 1.4.13 1.4.13-rc 1.4.12-rc 1.4.11-rc 1.4.10 1.4.10-rc 1.4.9-rc 1.4.8-rc 1.4.7-rc 1.4.6-rc 1.4.5-rc 1.4.4 1.4.4-rc 1.4.3 1.4.3-rc 1.4.2-rc 1.4.1-rc 1.4.0 1.4.0-rc 1.3.11-rc 1.3.10-rc 1.3.9-rc 1.3.8-rc 1.3.7-rc 1.3.6-rc 1.3.5 1.3.5-rc 1.3.4 1.3.4-rc 1.3.3-rc 1.3.2 1.3.2-rc 1.3.1-rc 1.3.0 1.3.0-rc 1.2.11-rc 1.2.10 1.2.10-rc 1.2.9 1.2.9-rc 1.2.8-rc 1.2.7-rc 1.2.6-rc 1.2.5-rc 1.2.4-rc 1.2.3-rc 1.2.2 1.2.2-rc 1.2.1-rc 1.2.0 1.2.0-rc 1.1.25-rc 1.1.24-rc 1.1.23-rc 1.1.22 1.1.22-rc 1.1.21-rc 1.1.20 1.1.20-rc 1.1.19-rc 1.1.18-rc 1.1.17 1.1.17-rc 1.1.16-rc 1.1.15-rc 1.1.14 1.1.14-rc 1.1.13-rc 1.1.12-rc 1.1.11-rc 1.1.10 1.1.10-rc 1.1.9-rc 1.1.8-rc 1.1.7-rc 1.1.6 1.1.6-rc 1.1.5 1.1.5-rc 1.1.4-rc 1.1.3-rc 1.1.2 1.1.2-rc 1.1.1-rc 1.1.0-rc 1.0.17-rc 1.0.16-rc 1.0.15 1.0.15-rc 1.0.14-rc 1.0.13-rc 1.0.12-rc 1.0.11-rc 1.0.10-yishay-rc 1.0.10-rc 1.0.9-rc 1.0.8-rc 1.0.7-rc 1.0.6 1.0.6-rc 1.0.5-rc 1.0.4-rc 1.0.3-rc 1.0.2-rc 1.0.1 1.0.1-rc 1.0.0-rc 0.16.19-rc 0.16.18-rc 0.16.17-rc 0.16.16-rc 0.16.15-rc 0.16.14-rc 0.16.13-rc 0.16.12-rc 0.16.11-rc 0.16.10-rc 0.16.9-rc 0.16.8-rc 0.16.7-rc 0.16.6-rc 0.16.5-rc 0.16.4-rc 0.16.3-rc 0.16.2-rc 0.16.1-rc 0.16.0-rc 0.15.53-rc 0.15.52 0.15.52-rc 0.15.51 0.15.51-rc 0.15.50-rc 0.15.49-rc 0.15.48 0.15.48-rc 0.15.47-rc 0.15.46-rc 0.15.45-rc 0.15.44-rc 0.15.43-rc 0.15.42-rc 0.15.41-rc 0.15.40-rc 0.15.39-rc 0.15.38-rc 0.15.37-rc 0.15.36-rc 0.15.35-rc 0.15.34-rc 0.15.33-rc 0.15.32-rc 0.15.31-rc 0.15.30-rc 0.15.29-rc 0.15.28-rc 0.15.27-rc 0.15.26-rc 0.15.25-rc 0.15.24-rc 0.15.23-rc 0.15.22 0.15.22-rc 0.15.21 0.15.21-rc 0.15.20-rc 0.15.19 0.15.19-rc 0.15.18 0.15.18-rc 0.15.17-rc 0.15.16 0.15.16-rc 0.15.15-rc 0.15.14-rc 0.15.13-rc 0.15.12-rc 0.15.11-rc 0.15.10-rc 0.15.9-rc 0.15.8 0.15.8-rc 0.15.7 0.15.7-rc 0.15.6-rc 0.15.5 0.15.5-rc 0.15.4-rc 0.15.3-rc 0.15.2-rc 0.15.1-rc 0.15.0 0.15.0-rc 0.14.143-rc-test-changelog 0.14.142-rc-test-changelog 0.14.141-rc-test-changelog 0.14.140-rc-test-changelog 0.14.139-rc-test-changelog 0.14.138-rc-test-changelog 0.14.137-rc-test-changelog 0.14.136-rc-test-changelog 0.14.135-rc-test-changelog 0.14.134-rc-test-changelog 0.14.133-rc-test-changelog 0.14.132-rc-test-changelog 0.14.131-rc-test-changelog 0.14.130-rc-test-changelog 0.14.129-rc-test-changelog 0.14.128-rc-test-changelog 0.14.127-rc-test-changelog 0.14.126-rc-test-changelog 0.14.125-rc-test-changelog 0.14.124-rc-test-changelog 0.14.123-rc-test-changelog 0.14.122-rc-test-changelog 0.14.121-rc-test-changelog 0.14.120-rc-test-changelog 0.14.119-rc-test-changelog 0.14.118-rc-test-changelog 0.14.117-rc-test-changelog 0.14.116-rc-test-changelog 0.14.115-rc 0.14.114-rc 0.14.113-rc-test-changelog 0.14.112-rc-test-changelog 0.14.111-rc-test-changelog 0.14.110-rc-test-changelog 0.14.109-rc-test-changelog 0.14.108-rc-test-changelog 0.14.107-rc-test-changelog 0.14.106-rc-test-changelog 0.14.105-rc-test-changelog 0.14.104-rc-test-changelog 0.14.103-rc-test-changelog 0.14.102-rc 0.14.102-rc-test-changelog 0.14.101-rc 0.14.101-rc-test-changelog 0.14.100-rc 0.14.100-rc-test-changelog 0.14.99-rc 0.14.99-rc-test-changelog 0.14.98-rc 0.14.98-rc-test-changelog 0.14.97-rc 0.14.97-rc-test-changelog 0.14.96-rc 0.14.96-rc-test-changelog 0.14.95 0.14.95-rc 0.14.95-rc-test-changelog 0.14.94-rc 0.14.94-rc-test-changelog 0.14.93 0.14.93-rc 0.14.93-rc-test-changelog 0.14.92-rc 0.14.92-rc-test-changelog 0.14.91-rc 0.14.91-rc-test-changelog 0.14.90 0.14.90-rc 0.14.90-rc-test-changelog 0.14.89-rc 0.14.89-rc-test-changelog 0.14.88-rc 0.14.88-rc-test-changelog 0.14.87 0.14.87-rc 0.14.86-rc 0.14.85 0.14.85-rc 0.14.84-rc 0.14.83-rc 0.14.82-rc 0.14.81-rc 0.14.80-rc 0.14.79-rc 0.14.78-rc 0.14.77-rc 0.14.76-rc 0.14.75-rc 0.14.74-rc 0.14.73-rc 0.14.72-rc 0.14.71 0.14.71-rc 0.14.70 0.14.70-rc 0.14.69 0.14.69-rc 0.14.68-rc 0.14.67-rc 0.14.66-rc 0.14.65-rc 0.14.64-rc 0.14.63-rc 0.14.62 0.14.62-rc 0.14.61-rc 0.14.60-rc 0.14.59-rc 0.14.58-rc 0.14.57-rc 0.14.56-rc 0.14.55-rc 0.14.54-rc 0.14.53-rc 0.14.52-rc 0.14.51-rc 0.14.50-rc 0.14.49 0.14.49-rc 0.14.48-rc 0.14.47-rc 0.14.46 0.14.46-rc 0.14.45-rc 0.14.44-rc 0.14.43-rc 0.14.42-rc 0.14.41-rc 0.14.40-rc 0.14.39-rc 0.14.38-rc 0.14.37-rc 0.14.36 0.14.36-rc 0.14.35-rc 0.14.34-rc 0.14.33 0.14.33-rc 0.14.32-rc 0.14.31-rc 0.14.30-rc 0.14.29 0.14.29-rc 0.14.28-rc 0.14.27-rc 0.14.26 0.14.26-rc 0.14.25-rc 0.14.24-rc 0.14.23-rc 0.14.22-rc 0.14.21-rc 0.14.20 0.14.20-rc 0.14.19-rc 0.14.18 0.14.18-staging 0.14.18-staging-test-yishay 0.14.18-rc 0.14.17 0.14.17-yishay-test-yishay 0.14.17-yishay-rc 0.14.17-staging 0.14.17-rc 0.14.16 0.14.16-staging 0.14.16-rc 0.14.15-staging 0.14.14-staging 0.14.13-staging 0.14.12-staging 0.14.11-staging 0.14.10-staging 0.14.9-staging 0.14.8-staging 0.14.7-staging 0.14.7-rc 0.14.6 0.14.6-staging 0.14.5-staging 0.14.5-rc 0.14.4 0.14.4-staging 0.14.3-staging 0.14.2 0.14.2-staging 0.14.2-rc 0.14.2-internal 0.14.1-test-yishay 0.14.1-staging 0.14.1-rc 0.14.0-staging 0.14.0-rc 0.13.7 0.13.7-staging 0.13.7-internal 0.13.6-staging 0.13.5-staging 0.13.4 0.13.4-staging 0.13.4-internal 0.13.3-staging 0.13.2 0.13.2-staging 0.13.2-internal 0.13.1-staging 0.13.0 0.13.0-staging 0.13.0-internal 0.12.1 0.12.1-staging 0.12.1-internal 0.12.0 0.12.0-staging 0.12.0-internal 0.11.0 0.11.0-staging 0.10.6-staging 0.10.5-staging 0.10.4-staging 0.10.3-staging 0.10.2-staging 0.10.1-staging 0.10.0 0.10.0-staging 0.9.4-internal 0.9.4-DAT-3420-remove-find-replace 0.9.3-internal 0.9.3-DAT-3420-remove-find-replace 0.9.2-yishay 0.9.2-DAT-3420-remove-find-replace 0.9.1-DAT-3420-remove-find-replace 0.9.0 0.9.0-temp 0.9.0-staging 0.9.0-internal 0.9.0-DAT-3420-remove-find-replace 0.8.2-staging 0.8.1-staging 0.8.0 0.8.0-staging 0.8.0-internal 0.7.1 0.7.1-internal 0.7.0 0.7.0-staging 0.7.0-internal 0.6.3-DAT-3371-homebrew 0.6.2-yishay 0.6.2-staging 0.6.1-staging 0.6.1-docker 0.6.0-staging 0.5.0 0.5.0-staging 0.5.0-internal 0.4.4-DAT-3363-docker-image 0.4.3-DAT-3363-docker-image 0.4.2-staging 0.4.2-DAT-3363-docker-image 0.4.1-staging 0.4.1-DAT-3363-docker-image 0.4.0 0.4.0-staging 0.4.0-internal 0.3.2 0.3.2-internal 0.3.1-staging 0.3.0-fix-semver 0.2.2 0.2.2-staging 0.2.2-internal 0.2.1 0.2.1-staging 0.2.1-internal 0.2.0 0.2.0-staging 0.2.0-internal 0.2.0-fix-semver 0.1.778-staging 0.1.777-staging 0.1.776-DAT-3209-semantic-versioning 0.1.775-DAT-3209-semantic-versioning 0.1.774-DAT-3209-semantic-versioning 0.1.772-staging 0.1.768-staging 0.1.763 0.1.763-internal 0.1.760-staging 0.1.752-staging 0.1.741 0.1.741-internal 0.1.738-staging 0.1.731 0.1.731-internal 0.1.723-staging 0.1.720-staging 0.1.708 0.1.708-internal 0.1.705-staging 0.1.692-staging 0.1.640-staging 0.1.550-DAT-3096-cicd-signing 0.1.547-DAT-3096-cicd-signing 0.1.544-DAT-3096-cicd-signing 0.1.541-DAT-3096-cicd-signing 0.1.538-DAT-3096-cicd-signing 0.1.535-DAT-3096-cicd-signing 0.1.532-DAT-3096-cicd-signing 0.1.529-DAT-3096-cicd-signing 0.1.526-DAT-3096-cicd-signing 0.1.523-DAT-3096-cicd-signing 0.1.516-DAT-3096-cicd-signing 0.1.514-DAT-3096-cicd-signing 0.1.512-DAT-3096-cicd-signing 0.1.510-DAT-3096-cicd-signing 0.1.508-DAT-3096-cicd-signing 0.1.503 0.1.503-staging 0.1.503-internal 0.1.498-DAT-3096-cicd-signing 0.1.493-DAT-3096-cicd-signing 0.1.487-DAT-3096-cicd-signing 0.1.481-DAT-3096-cicd-signing 0.1.471-DAT-3096-cicd-signing 0.1.460 0.1.460-staging 0.1.460-internal 0.1.454-staging 0.1.443 0.1.443-staging 0.1.443-internal 0.1.439-staging 0.1.431 0.1.431-staging 0.1.431-internal 0.1.423-staging 0.0.1-docker vv1.4.41-rc v1.8.2-rc v1.8.1 v1.8.1-rc v1.8.0 v1.8.0-rc v1.7.3 v1.7.3-rc v1.7.2-rc v1.7.1 v1.7.1-rc v1.7.0-rc v1.6.49-rc v1.6.48 v1.6.48-rc v1.6.47-rc v1.6.46 v1.6.46-rc v1.6.45-rc v1.6.44 v1.6.44-rc v1.6.43-rc v1.6.42 v1.6.42-rc v1.6.41-rc v1.6.40 v1.6.40-rc v1.6.39-rc v1.6.38-rc v1.6.37 v1.6.37-rc v1.6.36 v1.6.36-rc v1.6.35-rc v1.6.34-rc v1.6.33 v1.6.33-rc v1.6.32 v1.6.32-rc v1.6.31-rc v1.6.30-rc v1.6.29 v1.6.29-rc v1.6.28 v1.6.28-rc v1.6.27 v1.6.27-rc v1.6.26 v1.6.26-rc v1.6.25 v1.6.25-rc v1.6.24 v1.6.24-rc v1.6.23 v1.6.23-rc v1.6.22-rc v1.6.21-rc v1.6.20-rc v1.6.19 v1.6.19-rc v1.6.18 v1.6.18-rc v1.6.17-rc v1.6.16 v1.6.16-rc v1.6.15-rc v1.6.14 v1.6.14-rc v1.6.13 v1.6.13-rc v1.6.12 v1.6.12-rc v1.6.11-rc v1.6.10-rc v1.6.9-rc v1.6.8-rc v1.6.7-rc v1.6.6 v1.6.6-rc v1.6.5-rc v1.6.4-rc v1.6.3-rc v1.6.2-rc v1.6.1-rc v1.6.0 v1.6.0-rc v1.5.38-rc v1.5.37 v1.5.37-rc v1.5.36 v1.5.36-rc v1.5.35 v1.5.35-rc v1.5.34-rc v1.5.33-rc v1.5.32-rc v1.5.31-rc v1.5.30 v1.5.30-rc v1.5.29 v1.5.29-rc v1.5.28-rc v1.5.27-rc v1.5.26-rc v1.5.25 v1.5.25-rc v1.5.24-rc v1.5.23-rc v1.5.22-rc v1.5.21-rc v1.5.20 v1.5.20-rc v1.5.19 v1.5.19-rc v1.5.18-rc v1.5.17 v1.5.17-rc v1.5.16 v1.5.16-rc v1.5.15 v1.5.15-rc v1.5.14 v1.5.13 v1.5.12 v1.5.11 v1.5.10 v1.5.9 v1.5.7 v1.5.4-rc v1.5.3 v1.5.3-rc v1.5.2 v1.5.0 v1.4.43-rc v1.4.42-rc v1.4.41-rc v1.4.40-rc v1.4.40-rc-dima-test v0.1.773-DAT-3209-semantic-versioning v0.0.189798_tzlil_debug v0.0.3 v0.0.2-extract_evaluation v0.0.1 v0.0.1-extract_evaluation v-extract_evaluation pull
No related merge requests found
Showing with 122 additions and 106 deletions
+122 -106
......@@ -50,7 +50,7 @@ func (e *Evaluator) CreateEvaluation(cliId string, cliVersion string, k8sVersion
return createEvaluationResponse, err
}
func (e *Evaluator) UpdateFailedYamlValidation(invalidFiles []*validation.InvalidFile, evaluationId int, stopEvaluation bool) error {
func (e *Evaluator) UpdateFailedYamlValidation(invalidFiles []*validation.InvalidYamlFile, evaluationId int, stopEvaluation bool) error {
invalidFilesPaths := []*string{}
for _, file := range invalidFiles {
invalidFilesPaths = append(invalidFilesPaths, &file.Path)
......@@ -63,7 +63,7 @@ func (e *Evaluator) UpdateFailedYamlValidation(invalidFiles []*validation.Invali
return err
}
func (e *Evaluator) UpdateFailedK8sValidation(invalidFiles []*validation.InvalidFile, evaluationId int, stopEvaluation bool) error {
func (e *Evaluator) UpdateFailedK8sValidation(invalidFiles []*validation.InvalidK8sFile, evaluationId int, stopEvaluation bool) error {
invalidFilesPaths := []*string{}
for _, file := range invalidFiles {
invalidFilesPaths = append(invalidFilesPaths, &file.Path)
......
......@@ -13,24 +13,26 @@ import (
)
type Printer interface {
PrintWarnings(warnings []printer.Warning)
PrintWarnings(invalidYamlWarnings []printer.Warning, invalidK8sWarnings []printer.Warning, failedEvaluationWarnings []printer.Warning)
PrintSummaryTable(summary printer.Summary)
PrintEvaluationSummary(summary printer.EvaluationSummary, k8sVersion string)
}
type FormattedOutput struct {
Results *EvaluationResults
Evaluationresults *EvaluationResults
EvaluationSummary printer.EvaluationSummary
InvalidYamlFiles []*validation.InvalidYamlFile
InvalidK8sFiles []*validation.InvalidK8sFile
}
func PrintResults(results *EvaluationResults, invalidFiles []*validation.InvalidFile, evaluationSummary printer.EvaluationSummary, loginURL string, outputFormat string, printer Printer, k8sVersion string) error {
func PrintResults(results *EvaluationResults, invalidYamlFiles []*validation.InvalidYamlFile, invalidK8sFiles []*validation.InvalidK8sFile, evaluationSummary printer.EvaluationSummary, loginURL string, outputFormat string, printer Printer, k8sVersion string) error {
switch {
case outputFormat == "json":
return jsonOutput(&FormattedOutput{Results: results, EvaluationSummary: evaluationSummary})
return jsonOutput(&FormattedOutput{Evaluationresults: results, EvaluationSummary: evaluationSummary, InvalidYamlFiles: invalidYamlFiles, InvalidK8sFiles: invalidK8sFiles})
case outputFormat == "yaml":
return yamlOutput(&FormattedOutput{Results: results, EvaluationSummary: evaluationSummary})
return yamlOutput(&FormattedOutput{Evaluationresults: results, EvaluationSummary: evaluationSummary, InvalidYamlFiles: invalidYamlFiles, InvalidK8sFiles: invalidK8sFiles})
default:
return textOutput(results, invalidFiles, evaluationSummary, loginURL, printer, k8sVersion)
return textOutput(results, invalidYamlFiles, invalidK8sFiles, evaluationSummary, loginURL, printer, k8sVersion)
}
}
......@@ -56,19 +58,19 @@ func yamlOutput(formattedOutput *FormattedOutput) error {
return nil
}
func textOutput(results *EvaluationResults, invalidFiles []*validation.InvalidFile, evaluationSummary printer.EvaluationSummary, url string, printer Printer, k8sVersion string) error {
func textOutput(results *EvaluationResults, invalidYamlFiles []*validation.InvalidYamlFile, invalidK8sFiles []*validation.InvalidK8sFile, evaluationSummary printer.EvaluationSummary, url string, printer Printer, k8sVersion string) error {
pwd, err := os.Getwd()
if err != nil {
return err
}
warnings, err := parseToPrinterWarnings(results, invalidFiles, pwd, k8sVersion)
invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings, err := parseToPrinterWarnings(results, invalidYamlFiles, invalidK8sFiles, pwd, k8sVersion)
if err != nil {
fmt.Println(err)
return err
}
printer.PrintWarnings(warnings)
printer.PrintWarnings(invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings)
summary := parseEvaluationResultsToSummary(results, evaluationSummary, url)
......@@ -79,16 +81,29 @@ func textOutput(results *EvaluationResults, invalidFiles []*validation.InvalidFi
return nil
}
func parseToPrinterWarnings(results *EvaluationResults, invalidFiles []*validation.InvalidFile, pwd string, k8sVersion string) ([]printer.Warning, error) {
var warnings = []printer.Warning{}
func parseToPrinterWarnings(results *EvaluationResults, invalidYamlFiles []*validation.InvalidYamlFile, invalidK8sFiles []*validation.InvalidK8sFile, pwd string, k8sVersion string) ([]printer.Warning, []printer.Warning, []printer.Warning, error) {
var invalidYamlWarnings = []printer.Warning{}
var invalidK8sWarnings = []printer.Warning{}
var failedEvaluationWarnings = []printer.Warning{}
for _, invalidFile := range invalidFiles {
warnings = append(warnings, printer.Warning{
for _, invalidFile := range invalidYamlFiles {
invalidYamlWarnings = append(invalidYamlWarnings, printer.Warning{
Title: fmt.Sprintf(">> File: %s\n", invalidFile.Path),
Details: []printer.WarningInfo{},
ValidationInfo: printer.ValidationInfo{
IsValid: false,
ValidationErrors: invalidFile.ValidationErrors,
K8sVersion: k8sVersion,
},
})
}
for _, invalidFile := range invalidK8sFiles {
invalidK8sWarnings = append(invalidK8sWarnings, printer.Warning{
Title: fmt.Sprintf(">> File: %s\n", invalidFile.Path),
Details: []printer.WarningInfo{},
ValidationInfo: printer.ValidationInfo{
IsValid: false,
ValidationStatus: invalidFile.ValidationStatus,
ValidationErrors: invalidFile.ValidationErrors,
K8sVersion: k8sVersion,
},
......@@ -110,7 +125,7 @@ func parseToPrinterWarnings(results *EvaluationResults, invalidFiles []*validati
relativePath, _ := filepath.Rel(pwd, fileName)
warnings = append(warnings, printer.Warning{
failedEvaluationWarnings = append(failedEvaluationWarnings, printer.Warning{
Title: fmt.Sprintf(">> File: %s\n", relativePath),
Details: warningDetails,
ValidationInfo: printer.ValidationInfo{
......@@ -122,7 +137,7 @@ func parseToPrinterWarnings(results *EvaluationResults, invalidFiles []*validati
}
}
return warnings, nil
return invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings, nil
}
type OutputTitle int
......
......@@ -14,8 +14,8 @@ type mockPrinter struct {
mock.Mock
}
func (m *mockPrinter) PrintWarnings(warnings []printer.Warning) {
m.Called(warnings)
func (m *mockPrinter) PrintWarnings(invalidYamlWarnings []printer.Warning, invalidK8sWarnings []printer.Warning, failedEvaluationWarnings []printer.Warning) {
m.Called(invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings)
}
func (c *mockPrinter) PrintSummaryTable(summary printer.Summary) {
......@@ -28,7 +28,8 @@ func (c *mockPrinter) PrintEvaluationSummary(summary printer.EvaluationSummary,
type printResultsTestCaseArgs struct {
results *EvaluationResults
invalidFiles []*validation.InvalidFile
invalidYamlFiles []*validation.InvalidYamlFile
invalidK8sFiles []*validation.InvalidK8sFile
evaluationSummary printer.EvaluationSummary
loginURL string
outputFormat string
......@@ -49,12 +50,12 @@ func TestPrintResults(t *testing.T) {
}
for _, tt := range tests {
mockedPrinter := &mockPrinter{}
mockedPrinter.On("PrintWarnings", mock.Anything)
mockedPrinter.On("PrintWarnings", mock.Anything, mock.Anything, mock.Anything)
mockedPrinter.On("PrintSummaryTable", mock.Anything)
mockedPrinter.On("PrintEvaluationSummary", mock.Anything, mock.Anything)
t.Run(tt.name, func(t *testing.T) {
_ = PrintResults(tt.args.results, tt.args.invalidFiles, tt.args.evaluationSummary, tt.args.loginURL, tt.args.outputFormat, mockedPrinter, "1.18.0")
_ = PrintResults(tt.args.results, tt.args.invalidYamlFiles, tt.args.invalidK8sFiles, tt.args.evaluationSummary, tt.args.loginURL, tt.args.outputFormat, mockedPrinter, "1.18.0")
if tt.args.outputFormat == "json" {
mockedPrinter.AssertNotCalled(t, "PrintWarnings")
......@@ -63,8 +64,8 @@ func TestPrintResults(t *testing.T) {
} else {
pwd, _ := os.Getwd()
warnings, _ := parseToPrinterWarnings(tt.args.results, tt.args.invalidFiles, pwd, "1.18.0")
mockedPrinter.AssertCalled(t, "PrintWarnings", warnings)
invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings, _ := parseToPrinterWarnings(tt.args.results, tt.args.invalidYamlFiles, tt.args.invalidK8sFiles, pwd, "1.18.0")
mockedPrinter.AssertCalled(t, "PrintWarnings", invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings)
}
})
}
......@@ -88,11 +89,12 @@ func print_resultst(outputFormat string) *printResultsTestCase {
TotalPassedCount: 0,
},
},
invalidFiles: []*validation.InvalidFile{},
invalidYamlFiles: []*validation.InvalidYamlFile{},
invalidK8sFiles: []*validation.InvalidK8sFile{},
evaluationSummary: printer.EvaluationSummary{},
loginURL: "login/url",
outputFormat: outputFormat,
outputFormat: outputFormat,
},
expected: nil,
}
}
\ No newline at end of file
}
......@@ -23,9 +23,9 @@ func ToAbsolutePath(path string) (string, error) {
return "", fmt.Errorf("failed parsing absolute path %s", path)
}
func ExtractFilesConfigurations(paths []string, concurrency int) (chan *extractor.FileConfigurations, chan *validation.InvalidFile) {
func ExtractFilesConfigurations(paths []string, concurrency int) (chan *extractor.FileConfigurations, chan *validation.InvalidYamlFile) {
filesConfigurationsChan := make(chan *extractor.FileConfigurations, concurrency)
invalidFilesChan := make(chan *validation.InvalidFile, concurrency)
invalidFilesChan := make(chan *validation.InvalidYamlFile, concurrency)
go func() {
defer func() {
......@@ -37,19 +37,19 @@ func ExtractFilesConfigurations(paths []string, concurrency int) (chan *extracto
absolutePath, err := ToAbsolutePath(path)
if err != nil {
invalidFilesChan <- &validation.InvalidFile{Path: path, ValidationStatus: validation.InvalidYamlFile, ValidationErrors: []error{err}}
invalidFilesChan <- &validation.InvalidYamlFile{Path: path, ValidationErrors: []error{err}}
continue
}
content, err := extractor.ReadFileContent(absolutePath)
if err != nil {
invalidFilesChan <- &validation.InvalidFile{Path: absolutePath, ValidationStatus: validation.InvalidYamlFile, ValidationErrors: []error{err}}
invalidFilesChan <- &validation.InvalidYamlFile{Path: absolutePath, ValidationErrors: []error{err}}
continue
}
configurations, err := extractor.ParseYaml(content)
if err != nil {
invalidFilesChan <- &validation.InvalidFile{Path: absolutePath, ValidationStatus: validation.InvalidYamlFile, ValidationErrors: []error{err}}
invalidFilesChan <- &validation.InvalidYamlFile{Path: absolutePath, ValidationErrors: []error{err}}
continue
}
......
......@@ -21,30 +21,21 @@ func New() *K8sValidator {
return &K8sValidator{}
}
type ValidationStatus int
const (
InvalidYamlFile ValidationStatus = iota + 1
InvalidK8sFile
)
func (validationStatus ValidationStatus) String() string {
return [...]string{"InvalidYamlFile", "InvalidK8sFile"}[validationStatus]
}
type InvalidFile struct {
Path string
ValidationStatus ValidationStatus
ValidationErrors []error
}
type InvalidYamlFile InvalidFile
type InvalidK8sFile InvalidFile
func (val *K8sValidator) InitClient(k8sVersion string) {
val.validationClient = newKubconformValidator(k8sVersion)
}
func (val *K8sValidator) ValidateResources(filesConfigurationsChan chan *extractor.FileConfigurations, concurrency int) (chan *extractor.FileConfigurations, chan *InvalidFile) {
func (val *K8sValidator) ValidateResources(filesConfigurationsChan chan *extractor.FileConfigurations, concurrency int) (chan *extractor.FileConfigurations, chan *InvalidK8sFile) {
validK8sFilesConfigurationsChan := make(chan *extractor.FileConfigurations, concurrency)
invalidK8sFilesChan := make(chan *InvalidFile, concurrency)
invalidK8sFilesChan := make(chan *InvalidK8sFile, concurrency)
go func() {
defer func() {
......@@ -56,9 +47,8 @@ func (val *K8sValidator) ValidateResources(filesConfigurationsChan chan *extract
isValid, validationErrors, err := val.validateResource(fileConfigurations.FileName)
if err != nil {
invalidK8sFilesChan <- &InvalidFile{
invalidK8sFilesChan <- &InvalidK8sFile{
Path: fileConfigurations.FileName,
ValidationStatus: InvalidK8sFile,
ValidationErrors: []error{err},
}
continue
......@@ -66,9 +56,8 @@ func (val *K8sValidator) ValidateResources(filesConfigurationsChan chan *extract
if isValid {
validK8sFilesConfigurationsChan <- fileConfigurations
} else {
invalidK8sFilesChan <- &InvalidFile{
invalidK8sFilesChan <- &InvalidK8sFile{
Path: fileConfigurations.FileName,
ValidationStatus: InvalidK8sFile,
ValidationErrors: validationErrors,
}
}
......
......@@ -19,8 +19,8 @@ import (
type Evaluator interface {
Evaluate(filesConfigurationsChan []*extractor.FileConfigurations, evaluationId int) (*evaluation.EvaluationResults, error)
CreateEvaluation(cliId string, cliVersion string, k8sVersion string) (*cliClient.CreateEvaluationResponse, error)
UpdateFailedYamlValidation(invalidFiles []*validation.InvalidFile, evaluationId int, stopEvaluation bool) error
UpdateFailedK8sValidation(invalidFiles []*validation.InvalidFile, evaluationId int, stopEvaluation bool) error
UpdateFailedYamlValidation(invalidFiles []*validation.InvalidYamlFile, evaluationId int, stopEvaluation bool) error
UpdateFailedK8sValidation(invalidFiles []*validation.InvalidK8sFile, evaluationId int, stopEvaluation bool) error
}
type Messager interface {
......@@ -28,7 +28,7 @@ type Messager interface {
}
type K8sValidator interface {
ValidateResources(filesConfigurations chan *extractor.FileConfigurations, concurrency int) (chan *extractor.FileConfigurations, chan *validation.InvalidFile)
ValidateResources(filesConfigurations chan *extractor.FileConfigurations, concurrency int) (chan *extractor.FileConfigurations, chan *validation.InvalidK8sFile)
InitClient(k8sVersion string)
}
......@@ -38,7 +38,7 @@ type TestCommandFlags struct {
}
type EvaluationPrinter interface {
PrintWarnings(warnings []printer.Warning)
PrintWarnings(invalidYamlWarnings []printer.Warning, invalidK8sWarnings []printer.Warning, failedEvaluationWarnings []printer.Warning)
PrintSummaryTable(summary printer.Summary)
PrintMessage(messageText string, messageColor string)
PrintEvaluationSummary(evaluationSummary printer.EvaluationSummary, k8sVersion string)
......@@ -133,7 +133,7 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
ctx.K8sValidator.InitClient(createEvaluationResponse.K8sVersion)
validK8sFilesConfigurationsChan, invalidK8sFilesChan := ctx.K8sValidator.ValidateResources(validYamlFilesConfigurationsChan, concurrency)
invalidYamlFiles := aggregateInvalidFiles(invalidYamlFilesChan)
invalidYamlFiles := aggregateInvalidYamlFiles(invalidYamlFilesChan)
invalidYamlFilesLen := len(invalidYamlFiles)
......@@ -144,7 +144,7 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
return err
}
invalidK8sFiles := aggregateInvalidFiles(invalidK8sFilesChan)
invalidK8sFiles := aggregateInvalidK8sFiles(invalidK8sFilesChan)
invalidK8sFilesLen := len(invalidK8sFiles)
stopEvaluation = invalidYamlFilesLen+invalidK8sFilesLen == filesPathsLen
......@@ -186,16 +186,14 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
PassedPolicyCheckCount: passedPolicyCheckCount,
}
invalidFiles := append(invalidYamlFiles, invalidK8sFiles...)
err = evaluation.PrintResults(results, invalidFiles, evaluationSummary, fmt.Sprintf("https://app.datree.io/login?cliId=%s", ctx.LocalConfig.CliId), flags.Output, ctx.Printer, createEvaluationResponse.K8sVersion)
err = evaluation.PrintResults(results, invalidYamlFiles, invalidK8sFiles, evaluationSummary, fmt.Sprintf("https://app.datree.io/login?cliId=%s", ctx.LocalConfig.CliId), flags.Output, ctx.Printer, createEvaluationResponse.K8sVersion)
var invocationFailedErr error = nil
if err != nil {
fmt.Println(err.Error())
invocationFailedErr = err
} else if len(invalidFiles) > 0 || results.Summary.TotalFailedRules > 0 {
} else if len(invalidYamlFiles) > 0 || len(invalidK8sFiles) > 0 || results.Summary.TotalFailedRules > 0 {
invocationFailedErr = fmt.Errorf("Evaluation failed")
}
......
......@@ -28,13 +28,13 @@ func (m *mockEvaluator) CreateEvaluation(cliId string, cliVersion string, k8sVer
return args.Get(0).(*cliClient.CreateEvaluationResponse), args.Error(1)
}
func (m *mockEvaluator) UpdateFailedYamlValidation(invalidFiles []*validation.InvalidFile, evaluationId int, stopEvaluation bool) error {
args := m.Called(invalidFiles, evaluationId, stopEvaluation)
func (m *mockEvaluator) UpdateFailedYamlValidation(invalidYamlFiles []*validation.InvalidYamlFile, evaluationId int, stopEvaluation bool) error {
args := m.Called(invalidYamlFiles, evaluationId, stopEvaluation)
return args.Error(0)
}
func (m *mockEvaluator) UpdateFailedK8sValidation(invalidFiles []*validation.InvalidFile, evaluationId int, stopEvaluation bool) error {
args := m.Called(invalidFiles, evaluationId, stopEvaluation)
func (m *mockEvaluator) UpdateFailedK8sValidation(invalidK8sFiles []*validation.InvalidK8sFile, evaluationId int, stopEvaluation bool) error {
args := m.Called(invalidK8sFiles, evaluationId, stopEvaluation)
return args.Error(0)
}
......@@ -62,9 +62,9 @@ type K8sValidatorMock struct {
mock.Mock
}
func (kv *K8sValidatorMock) ValidateResources(filesConfigurationsChan chan *extractor.FileConfigurations, concurrency int) (chan *extractor.FileConfigurations, chan *validation.InvalidFile) {
func (kv *K8sValidatorMock) ValidateResources(filesConfigurationsChan chan *extractor.FileConfigurations, concurrency int) (chan *extractor.FileConfigurations, chan *validation.InvalidK8sFile) {
args := kv.Called(filesConfigurationsChan, concurrency)
return args.Get(0).(chan *extractor.FileConfigurations), args.Get(1).(chan *validation.InvalidFile)
return args.Get(0).(chan *extractor.FileConfigurations), args.Get(1).(chan *validation.InvalidK8sFile)
}
func (kv *K8sValidatorMock) InitClient(k8sVersion string) {
......@@ -74,8 +74,8 @@ type PrinterMock struct {
mock.Mock
}
func (p *PrinterMock) PrintWarnings(warnings []printer.Warning) {
p.Called(warnings)
func (p *PrinterMock) PrintWarnings(invalidYamlWarnings []printer.Warning, invalidK8sWarnings []printer.Warning, failedEvaluationWarnings []printer.Warning) {
p.Called(invalidYamlWarnings, invalidK8sWarnings, failedEvaluationWarnings)
}
func (p *PrinterMock) PrintSummaryTable(summary printer.Summary) {
......@@ -125,13 +125,13 @@ func TestTestCommand(t *testing.T) {
filesConfigurationsChan := newFilesConfigurationsChan(path)
filesConfigurations := newFilesConfigurations(path)
invalidFilesChan := newInvalidFilesChan()
invelidK8sFilesChan := newInvalidK8sFilesChan()
k8sValidatorMock.On("ValidateResources", mock.Anything, mock.Anything).Return(filesConfigurationsChan, invalidFilesChan, newErrorsChan())
k8sValidatorMock.On("ValidateResources", mock.Anything, mock.Anything).Return(filesConfigurationsChan, invelidK8sFilesChan, newErrorsChan())
k8sValidatorMock.On("InitClient", mock.Anything).Return()
printerMock := &PrinterMock{}
printerMock.On("PrintWarnings", mock.Anything)
printerMock.On("PrintWarnings", mock.Anything, mock.Anything, mock.Anything)
printerMock.On("PrintSummaryTable", mock.Anything)
printerMock.On("PrintMessage", mock.Anything, mock.Anything)
printerMock.On("PrintEvaluationSummary", mock.Anything, mock.Anything)
......@@ -193,10 +193,10 @@ func newFilesConfigurations(path string) []*extractor.FileConfigurations {
return filesConfigurations
}
func newInvalidFilesChan() chan *validation.InvalidFile {
invalidFilesChan := make(chan *validation.InvalidFile, 1)
func newInvalidK8sFilesChan() chan *validation.InvalidK8sFile {
invalidFilesChan := make(chan *validation.InvalidK8sFile, 1)
invalidFile := &validation.InvalidFile{
invalidFile := &validation.InvalidK8sFile{
Path: "invalid/path",
ValidationErrors: []error{},
}
......
......@@ -15,8 +15,15 @@ func createSpinner(text string, color string) *spinner.Spinner {
return s
}
func aggregateInvalidFiles(invalidFilesChan chan *validation.InvalidFile) []*validation.InvalidFile {
var invalidFiles []*validation.InvalidFile
func aggregateInvalidK8sFiles(invalidFilesChan chan *validation.InvalidK8sFile) []*validation.InvalidK8sFile {
var invalidFiles []*validation.InvalidK8sFile
for invalidFile := range invalidFilesChan {
invalidFiles = append(invalidFiles, invalidFile)
}
return invalidFiles
}
func aggregateInvalidYamlFiles(invalidFilesChan chan *validation.InvalidYamlFile) []*validation.InvalidYamlFile {
var invalidFiles []*validation.InvalidYamlFile
for invalidFile := range invalidFilesChan {
invalidFiles = append(invalidFiles, invalidFile)
}
......
......@@ -4,7 +4,6 @@ import (
"fmt"
"os"
"github.com/datreeio/datree/bl/validation"
"github.com/fatih/color"
"github.com/olekukonko/tablewriter"
)
......@@ -28,7 +27,6 @@ type WarningInfo struct {
type ValidationInfo struct {
IsValid bool
ValidationStatus validation.ValidationStatus
ValidationErrors []error
K8sVersion string
}
......@@ -38,40 +36,47 @@ type Warning struct {
ValidationInfo ValidationInfo
}
func (p *Printer) PrintWarnings(warnings []Warning) {
for _, warning := range warnings {
func (p *Printer) PrintWarnings(invalidYamlWarnings []Warning, invalidK8sWarnings []Warning, failedEvaluationWarnings []Warning) {
for _, warning := range invalidYamlWarnings {
p.printInColor(warning.Title, p.theme.Colors.Yellow)
fmt.Println()
if !warning.ValidationInfo.IsValid {
if warning.ValidationInfo.ValidationStatus == validation.InvalidYamlFile {
p.printInColor("[X] YAML validation\n", p.theme.Colors.White)
fmt.Println()
for _, validationError := range warning.ValidationInfo.ValidationErrors {
validationError := p.theme.Colors.Red.Sprint(validationError.Error())
fmt.Printf("%v %v\n", p.theme.Emoji.Error, validationError)
}
fmt.Println()
p.printInColor("[X] YAML validation\n", p.theme.Colors.White)
fmt.Println()
for _, validationError := range warning.ValidationInfo.ValidationErrors {
validationError := p.theme.Colors.Red.Sprint(validationError.Error())
fmt.Printf("%v %v\n", p.theme.Emoji.Error, validationError)
}
fmt.Println()
p.printInColor("[?] Kubernetes schema validation\n", p.theme.Colors.White)
p.printInColor("[?] Policy check didn’t run for this file\n", p.theme.Colors.White)
p.printInColor("[?] Kubernetes schema validation\n", p.theme.Colors.White)
p.printInColor("[?] Policy check didn’t run for this file\n", p.theme.Colors.White)
fmt.Println()
fmt.Println()
}
} else if warning.ValidationInfo.ValidationStatus == validation.InvalidK8sFile {
p.printInColor("[V] YAML validation\n", p.theme.Colors.Green)
p.printInColor("[X] Kubernetes schema validation\n", p.theme.Colors.White)
fmt.Println()
for _, warning := range invalidK8sWarnings {
p.printInColor(warning.Title, p.theme.Colors.Yellow)
fmt.Println()
for _, validationError := range warning.ValidationInfo.ValidationErrors {
validationError := p.theme.Colors.Red.Sprint(validationError.Error())
fmt.Printf("%v %v\n", p.theme.Emoji.Error, validationError)
}
fmt.Println()
p.printInColor("[?] Policy check didn’t run for this file\n", p.theme.Colors.White)
fmt.Println()
}
} else {
p.printInColor("[V] YAML validation\n", p.theme.Colors.Green)
p.printInColor("[X] Kubernetes schema validation\n", p.theme.Colors.White)
fmt.Println()
for _, validationError := range warning.ValidationInfo.ValidationErrors {
validationError := p.theme.Colors.Red.Sprint(validationError.Error())
fmt.Printf("%v %v\n", p.theme.Emoji.Error, validationError)
}
fmt.Println()
p.printInColor("[?] Policy check didn’t run for this file\n", p.theme.Colors.White)
fmt.Println()
}
for _, warning := range failedEvaluationWarnings {
p.printInColor(warning.Title, p.theme.Colors.Yellow)
fmt.Println()
if warning.ValidationInfo.IsValid {
p.printInColor("[V] YAML validation\n", p.theme.Colors.Green)
p.printInColor("[V] Kubernetes schema validation\n", p.theme.Colors.Green)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment