#include <policy_evaluator.h>
Classes | |
struct | PolicyConfig |
Public Member Functions | |
absl::Status | LoadPolicies (absl::string_view policy_dir=".yaze/policies") |
absl::StatusOr< PolicyResult > | EvaluateProposal (absl::string_view proposal_id) |
absl::Status | ReloadPolicies () |
bool | IsEnabled () const |
std::string | GetPolicyPath () const |
std::string | GetStatusString () const |
Static Public Member Functions | |
static PolicyEvaluator & | GetInstance () |
Private Member Functions | |
PolicyEvaluator ()=default | |
~PolicyEvaluator ()=default | |
PolicyEvaluator (const PolicyEvaluator &)=delete | |
PolicyEvaluator & | operator= (const PolicyEvaluator &)=delete |
absl::Status | ParsePolicyFile (absl::string_view yaml_content) |
void | EvaluateTestRequirements (absl::string_view proposal_id, PolicyResult *result) |
void | EvaluateChangeConstraints (absl::string_view proposal_id, PolicyResult *result) |
void | EvaluateForbiddenRanges (absl::string_view proposal_id, PolicyResult *result) |
void | EvaluateReviewRequirements (absl::string_view proposal_id, PolicyResult *result) |
void | CategorizeViolations (PolicyResult *result) |
Private Attributes | |
bool | enabled_ = false |
std::string | policy_path_ |
std::string | policy_dir_ |
std::unique_ptr< PolicyConfig > | config_ |
Definition at line 49 of file policy_evaluator.h.
|
privatedefault |
|
privatedefault |
|
privatedelete |
|
static |
Definition at line 69 of file policy_evaluator.cc.
Referenced by yaze::editor::ProposalDrawer::DrawActionButtons(), and yaze::editor::ProposalDrawer::DrawPolicyStatus().
absl::Status yaze::cli::PolicyEvaluator::LoadPolicies | ( | absl::string_view | policy_dir = ".yaze/policies" | ) |
Definition at line 74 of file policy_evaluator.cc.
References enabled_, ParsePolicyFile(), policy_dir_, and policy_path_.
Referenced by ReloadPolicies().
absl::StatusOr< PolicyResult > yaze::cli::PolicyEvaluator::EvaluateProposal | ( | absl::string_view | proposal_id | ) |
Definition at line 205 of file policy_evaluator.cc.
References CategorizeViolations(), config_, enabled_, EvaluateChangeConstraints(), EvaluateForbiddenRanges(), EvaluateReviewRequirements(), EvaluateTestRequirements(), yaze::cli::PolicyResult::has_critical_violations(), and yaze::cli::PolicyResult::passed.
absl::Status yaze::cli::PolicyEvaluator::ReloadPolicies | ( | ) |
Definition at line 94 of file policy_evaluator.cc.
References LoadPolicies(), and policy_dir_.
|
inline |
Definition at line 65 of file policy_evaluator.h.
References enabled_.
|
inline |
Definition at line 68 of file policy_evaluator.h.
References policy_path_.
std::string yaze::cli::PolicyEvaluator::GetStatusString | ( | ) | const |
Definition at line 102 of file policy_evaluator.cc.
References config_, enabled_, and policy_path_.
|
privatedelete |
|
private |
Definition at line 119 of file policy_evaluator.cc.
References config_, enabled_, yaze::cli::PolicyEvaluator::PolicyConfig::ChangeConstraint::max_bytes_changed, yaze::cli::PolicyEvaluator::PolicyConfig::ChangeConstraint::max_commands_executed, yaze::cli::PolicyEvaluator::PolicyConfig::TestRequirement::message, yaze::cli::PolicyEvaluator::PolicyConfig::ChangeConstraint::message, yaze::cli::PolicyEvaluator::PolicyConfig::ForbiddenRange::message, yaze::cli::PolicyEvaluator::PolicyConfig::ReviewRequirement::message, yaze::cli::PolicyEvaluator::PolicyConfig::TestRequirement::name, yaze::cli::PolicyEvaluator::PolicyConfig::ChangeConstraint::name, yaze::cli::PolicyEvaluator::PolicyConfig::ForbiddenRange::name, yaze::cli::PolicyEvaluator::PolicyConfig::ReviewRequirement::name, yaze::cli::PolicyEvaluator::PolicyConfig::ForbiddenRange::ranges, and yaze::cli::PolicyEvaluator::PolicyConfig::TestRequirement::test_suites.
Referenced by LoadPolicies().
|
private |
Definition at line 230 of file policy_evaluator.cc.
References config_.
Referenced by EvaluateProposal().
|
private |
Definition at line 243 of file policy_evaluator.cc.
References config_, yaze::cli::PolicyViolation::details, yaze::cli::ProposalRegistry::Instance(), yaze::cli::PolicyViolation::message, yaze::cli::PolicyViolation::policy_name, yaze::cli::PolicyViolation::severity, and yaze::cli::PolicyResult::violations.
Referenced by EvaluateProposal().
|
private |
Definition at line 287 of file policy_evaluator.cc.
References config_.
Referenced by EvaluateProposal().
|
private |
Definition at line 299 of file policy_evaluator.cc.
References config_, yaze::cli::PolicyViolation::details, yaze::cli::ProposalRegistry::Instance(), yaze::cli::PolicyViolation::message, yaze::cli::PolicyViolation::policy_name, yaze::cli::PolicyViolation::severity, and yaze::cli::PolicyResult::violations.
Referenced by EvaluateProposal().
|
private |
Definition at line 359 of file policy_evaluator.cc.
References yaze::cli::PolicyResult::critical_violations, yaze::cli::PolicyResult::info, yaze::cli::kCritical, yaze::cli::kInfo, yaze::cli::kWarning, yaze::cli::PolicyResult::violations, and yaze::cli::PolicyResult::warnings.
Referenced by EvaluateProposal().
|
private |
Definition at line 97 of file policy_evaluator.h.
Referenced by EvaluateProposal(), GetStatusString(), IsEnabled(), LoadPolicies(), and ParsePolicyFile().
|
private |
Definition at line 98 of file policy_evaluator.h.
Referenced by GetPolicyPath(), GetStatusString(), and LoadPolicies().
|
private |
Definition at line 99 of file policy_evaluator.h.
Referenced by LoadPolicies(), and ReloadPolicies().
|
private |
Definition at line 103 of file policy_evaluator.h.
Referenced by EvaluateChangeConstraints(), EvaluateForbiddenRanges(), EvaluateProposal(), EvaluateReviewRequirements(), EvaluateTestRequirements(), GetStatusString(), and ParsePolicyFile().