RepoAuditor 0.2.39__tar.gz → 0.2.41__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {repoauditor-0.2.39 → repoauditor-0.2.41}/PKG-INFO +2 -1
- {repoauditor-0.2.39 → repoauditor-0.2.41}/pyproject.toml +1 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/EntryPoint.py +2 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/ExecuteModules.py +10 -5
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Module.py +20 -4
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Query.py +5 -4
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Requirement.py +10 -1
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/__init__.py +1 -1
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/ExecuteModules_UnitTest.py +4 -3
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Module_UnitTest.py +14 -1
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubRulesets/EnableRulesetRequirementImpl_UnitTest.py +0 -1
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +1583 -1583
- {repoauditor-0.2.39 → repoauditor-0.2.41}/uv.lock +10 -3
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.copier-answers.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/CODEOWNERS +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/actions/release_impl/action.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/pull_request_template.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/release_sources.yaml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/workflows/CICD.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/workflows/CICD_impl.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/workflows/EndToEnd.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.github/workflows/codeql.yml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.gitignore +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.pre-commit-config.yaml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/.python-version +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/CODE_OF_CONDUCT.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/CONTRIBUTING.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/DEVELOPMENT.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/GOVERNANCE.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/LICENSE +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/MAINTAINERS.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/README.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/SECURITY.md +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/minisign_key.pub +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/AutoGitSemVer.yaml +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/CommandLineProcessor.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Display.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Impl/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugin.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowForcePushes.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/Protected.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/AutoMerge.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DefaultBranch.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DeleteHeadBranches.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DependabotSecurityUpdates.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Description.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardValueRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/License.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommit.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommitMessage.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Private.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/RebaseMergeCommit.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanning.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanningPushProtection.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashCommitMerge.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashMergeCommitMessage.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportDiscussions.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportIssues.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportProjects.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportWikis.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/TemplateRepository.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/WebCommitSignoff.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/CustomizationQuery.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Impl/ExistsRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Impl/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Module.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/CodeOwners.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/Contributing.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/IssueTemplates.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/PullRequestTemplates.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/SecurityPolicy.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomization/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubCustomizationPlugin.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/EnableRulesetRequirementImpl.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Module.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireStatusChecks.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/RulesetQuery.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesets/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/GitHubRulesetsPlugin.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/Plugins/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/RepoAuditor/py.typed +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/src/github_auditor/__init__.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/CommandLineProcessor_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/EntryPoint_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugin_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubCustomization/CutomizationQuery_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubCustomization/ExistsRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubCustomization/GitHubCustomization_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubCustomization_EndToEndTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubModule/fixtures.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubRuleset_EndToEndTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubRulesets/GitHubRuleset_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHubRulesets/RulsesetQuery_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/GitHub_EndToEndTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/__snapshots__/GitHubCustomization_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/__snapshots__/GitHubRuleset_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/conftest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Plugins/utilities.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Query_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/Requirement_UnitTest.py +0 -0
- {repoauditor-0.2.39 → repoauditor-0.2.41}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: RepoAuditor
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.41
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Project-URL: Homepage, https://github.com/gt-sse-center/RepoAuditor
|
|
6
6
|
Project-URL: Documentation, https://github.com/gt-sse-center/RepoAuditor
|
|
@@ -20,6 +20,7 @@ Requires-Python: >=3.10
|
|
|
20
20
|
Requires-Dist: dbrownell-common>=0.14.10
|
|
21
21
|
Requires-Dist: pluggy>=1.5.0
|
|
22
22
|
Requires-Dist: requests>=2.32.3
|
|
23
|
+
Requires-Dist: typer-config[yaml]>=1.4.2
|
|
23
24
|
Requires-Dist: typer>=0.15.3
|
|
24
25
|
Description-Content-Type: text/markdown
|
|
25
26
|
|
|
@@ -21,6 +21,7 @@ from dbrownell_Common import (
|
|
|
21
21
|
from dbrownell_Common.Streams.DoneManager import DoneManager
|
|
22
22
|
from dbrownell_Common.Streams.DoneManager import Flags as DoneManagerFlags # type: ignore [import-untyped]
|
|
23
23
|
from typer.core import TyperGroup # type: ignore [import-untyped]
|
|
24
|
+
from typer_config.decorators import use_yaml_config
|
|
24
25
|
|
|
25
26
|
from RepoAuditor import APP_NAME, Plugin, __version__
|
|
26
27
|
from RepoAuditor.CommandLineProcessor import CommandLineProcessor, Module
|
|
@@ -192,6 +193,7 @@ def _VersionCallback(value: bool) -> None: # noqa: FBT001
|
|
|
192
193
|
epilog=_HelpEpilog(),
|
|
193
194
|
no_args_is_help=False,
|
|
194
195
|
)
|
|
196
|
+
@use_yaml_config()
|
|
195
197
|
def EntryPoint( # noqa: PLR0913 # pragma: no cover
|
|
196
198
|
ctx: typer.Context,
|
|
197
199
|
version: Annotated[ # noqa: ARG001, FBT002
|
|
@@ -19,6 +19,7 @@ from dbrownell_Common.Streams.DoneManager import DoneManager # type: ignore[imp
|
|
|
19
19
|
from rich.progress import Progress, TimeElapsedColumn
|
|
20
20
|
|
|
21
21
|
from RepoAuditor.Module import EvaluateResult, ExecutionStyle, Module, OnStatusFunc
|
|
22
|
+
from RepoAuditor.Requirement import ReturnCode
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
# ----------------------------------------------------------------------
|
|
@@ -75,11 +76,14 @@ def CalcResultInfo(
|
|
|
75
76
|
|
|
76
77
|
Returns a code value indicating success, warning, or error,
|
|
77
78
|
as well as a string description of the result.
|
|
79
|
+
If the result is a warning or error, return immediately.
|
|
80
|
+
"Does Not Apply" is considered as a success.
|
|
78
81
|
"""
|
|
79
|
-
return_code =
|
|
82
|
+
return_code = ReturnCode.SUCCESS
|
|
83
|
+
return_msg = ""
|
|
80
84
|
|
|
81
85
|
if not all_eval_infos:
|
|
82
|
-
return
|
|
86
|
+
return ReturnCode.DOESNOTAPPLY, "module does not apply"
|
|
83
87
|
|
|
84
88
|
for eval_infos in all_eval_infos:
|
|
85
89
|
for eval_info in eval_infos:
|
|
@@ -87,17 +91,18 @@ def CalcResultInfo(
|
|
|
87
91
|
|
|
88
92
|
if result == EvaluateResult.Warning:
|
|
89
93
|
if eval_info.module.name in warnings_as_errors_module_names:
|
|
94
|
+
# Treat warnings as errors enabled so recast the result type
|
|
90
95
|
result = EvaluateResult.Error
|
|
91
96
|
elif eval_info.module.name in ignore_warnings_module_names:
|
|
92
97
|
continue
|
|
93
98
|
|
|
94
99
|
if result == EvaluateResult.Error:
|
|
95
|
-
return
|
|
100
|
+
return ReturnCode.ERROR, "errors were encountered"
|
|
96
101
|
|
|
97
102
|
if result == EvaluateResult.Warning:
|
|
98
|
-
return_code =
|
|
103
|
+
return_code, return_msg = ReturnCode.WARNING, "warnings were encountered"
|
|
99
104
|
|
|
100
|
-
return return_code,
|
|
105
|
+
return return_code, return_msg
|
|
101
106
|
|
|
102
107
|
|
|
103
108
|
def Execute(
|
|
@@ -15,6 +15,7 @@ from dbrownell_Common.TyperEx import TypeDefinitionItemType # type: ignore[impo
|
|
|
15
15
|
|
|
16
16
|
from RepoAuditor.Impl.ParallelSequentialProcessor import ParallelSequentialProcessor
|
|
17
17
|
from RepoAuditor.Query import EvaluateResult, ExecutionStyle, OnStatusFunc, Query, StatusInfo
|
|
18
|
+
from RepoAuditor.Requirement import ReturnCode
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
# ----------------------------------------------------------------------
|
|
@@ -133,7 +134,19 @@ class Module(ABC):
|
|
|
133
134
|
status_info.num_does_not_apply += len(query.requirements)
|
|
134
135
|
|
|
135
136
|
status_func(*status_info.__dict__.values())
|
|
136
|
-
|
|
137
|
+
# Since query returned None, it means it was not valid.
|
|
138
|
+
return 2, [
|
|
139
|
+
Module.EvaluateInfo(
|
|
140
|
+
result=EvaluateResult.DoesNotApply,
|
|
141
|
+
context=f"{query.name} did not return valid data.",
|
|
142
|
+
resolution="",
|
|
143
|
+
rationale="",
|
|
144
|
+
requirement=requirement,
|
|
145
|
+
query=query,
|
|
146
|
+
module=self,
|
|
147
|
+
)
|
|
148
|
+
for requirement in query.requirements
|
|
149
|
+
]
|
|
137
150
|
|
|
138
151
|
prev_query_status_info = StatusInfo()
|
|
139
152
|
|
|
@@ -171,15 +184,18 @@ class Module(ABC):
|
|
|
171
184
|
max_num_threads=max_num_threads,
|
|
172
185
|
)
|
|
173
186
|
|
|
174
|
-
return_code =
|
|
187
|
+
return_code = ReturnCode.SUCCESS
|
|
175
188
|
|
|
176
189
|
for evaluate_info in evaluate_infos:
|
|
177
190
|
if evaluate_info.result == EvaluateResult.Error:
|
|
178
|
-
return_code =
|
|
191
|
+
return_code = ReturnCode.ERROR
|
|
179
192
|
break
|
|
180
193
|
|
|
181
194
|
if evaluate_info.result == EvaluateResult.Warning:
|
|
182
|
-
return_code =
|
|
195
|
+
return_code = ReturnCode.WARNING
|
|
196
|
+
|
|
197
|
+
if evaluate_info.result == EvaluateResult.DoesNotApply:
|
|
198
|
+
return_code = ReturnCode.DOESNOTAPPLY
|
|
183
199
|
|
|
184
200
|
# Cleanup any resources created during the query
|
|
185
201
|
query.Cleanup(query_data)
|
|
@@ -12,7 +12,7 @@ from dataclasses import dataclass
|
|
|
12
12
|
from typing import Any, Optional, Protocol
|
|
13
13
|
|
|
14
14
|
from RepoAuditor.Impl.ParallelSequentialProcessor import ParallelSequentialProcessor
|
|
15
|
-
from RepoAuditor.Requirement import EvaluateResult, ExecutionStyle, Requirement
|
|
15
|
+
from RepoAuditor.Requirement import EvaluateResult, ExecutionStyle, Requirement, ReturnCode
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# ----------------------------------------------------------------------
|
|
@@ -90,21 +90,22 @@ class Query(ABC):
|
|
|
90
90
|
query_data,
|
|
91
91
|
requirement_args.get(requirement.name, {}),
|
|
92
92
|
)
|
|
93
|
-
return_code =
|
|
93
|
+
return_code = ReturnCode.SUCCESS
|
|
94
94
|
|
|
95
95
|
with status_info_lock:
|
|
96
96
|
status_info.num_completed += 1
|
|
97
97
|
|
|
98
98
|
if result_info.result == EvaluateResult.DoesNotApply:
|
|
99
99
|
status_info.num_does_not_apply += 1
|
|
100
|
+
return_code = ReturnCode.DOESNOTAPPLY
|
|
100
101
|
elif result_info.result == EvaluateResult.Success:
|
|
101
102
|
status_info.num_success += 1
|
|
102
103
|
elif result_info.result == EvaluateResult.Error:
|
|
103
104
|
status_info.num_error += 1
|
|
104
|
-
return_code =
|
|
105
|
+
return_code = ReturnCode.ERROR
|
|
105
106
|
elif result_info.result == EvaluateResult.Warning:
|
|
106
107
|
status_info.num_warning += 1
|
|
107
|
-
return_code =
|
|
108
|
+
return_code = ReturnCode.WARNING
|
|
108
109
|
else:
|
|
109
110
|
raise RuntimeError(result_info.result) # pragma: no cover
|
|
110
111
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
from abc import ABC, abstractmethod
|
|
10
10
|
from dataclasses import dataclass, field
|
|
11
|
-
from enum import Enum, auto
|
|
11
|
+
from enum import Enum, IntEnum, auto
|
|
12
12
|
from typing import Any, Optional
|
|
13
13
|
|
|
14
14
|
from dbrownell_Common.TyperEx import TypeDefinitionItemType # type: ignore[import-untyped]
|
|
@@ -27,6 +27,15 @@ class EvaluateResult(Enum):
|
|
|
27
27
|
Error = auto()
|
|
28
28
|
|
|
29
29
|
|
|
30
|
+
class ReturnCode(IntEnum):
|
|
31
|
+
"""Various return codes for operations, indicating success, failure, warning, etc."""
|
|
32
|
+
|
|
33
|
+
SUCCESS = 0
|
|
34
|
+
ERROR = -1
|
|
35
|
+
WARNING = 1
|
|
36
|
+
DOESNOTAPPLY = 2
|
|
37
|
+
|
|
38
|
+
|
|
30
39
|
# ----------------------------------------------------------------------
|
|
31
40
|
class Requirement(ABC):
|
|
32
41
|
"""A single requirement that can be evaluated against a set of data."""
|
|
@@ -178,6 +178,7 @@ class TestExecute:
|
|
|
178
178
|
(EvaluateResult.Warning, 1, False, False),
|
|
179
179
|
(EvaluateResult.Warning, -1, True, False),
|
|
180
180
|
(EvaluateResult.Warning, 0, False, True),
|
|
181
|
+
(EvaluateResult.DoesNotApply, 0, False, False),
|
|
181
182
|
],
|
|
182
183
|
)
|
|
183
184
|
def test_NotSuccess(self, data):
|
|
@@ -328,9 +329,9 @@ class TestExecute:
|
|
|
328
329
|
Processing 'MyModule' (1 of 1)...
|
|
329
330
|
|
|
330
331
|
|
|
331
|
-
DONE! (
|
|
332
|
-
DONE! (
|
|
333
|
-
DONE! (
|
|
332
|
+
DONE! (2, <scrubbed duration>)
|
|
333
|
+
DONE! (2, <scrubbed duration>)
|
|
334
|
+
DONE! (2, <scrubbed duration>)
|
|
334
335
|
""",
|
|
335
336
|
)
|
|
336
337
|
|
|
@@ -357,7 +357,20 @@ def test_Module(single_threaded):
|
|
|
357
357
|
assert results[1][3].module is module
|
|
358
358
|
|
|
359
359
|
# QueryC
|
|
360
|
-
|
|
360
|
+
query_c_expected_results = [
|
|
361
|
+
Module.EvaluateInfo(
|
|
362
|
+
result=EvaluateResult.DoesNotApply,
|
|
363
|
+
context="QueryC did not return valid data.",
|
|
364
|
+
rationale="",
|
|
365
|
+
resolution="",
|
|
366
|
+
requirement=requirement,
|
|
367
|
+
query=queryC,
|
|
368
|
+
module=module,
|
|
369
|
+
)
|
|
370
|
+
for requirement in queryC.requirements
|
|
371
|
+
]
|
|
372
|
+
for idx, result in enumerate(results[2]):
|
|
373
|
+
assert result == query_c_expected_results[idx]
|
|
361
374
|
|
|
362
375
|
# Validate the notifications
|
|
363
376
|
if single_threaded:
|
|
@@ -46,7 +46,6 @@ class TestEnableRulesetRequirementImpl:
|
|
|
46
46
|
query_data = {}
|
|
47
47
|
requirement_args = {"true": False}
|
|
48
48
|
result = requirement.Evaluate(query_data, requirement_args)
|
|
49
|
-
print(result)
|
|
50
49
|
assert result.result == EvaluateResult.DoesNotApply
|
|
51
50
|
|
|
52
51
|
def test_Evaluate_InvalidRule(self):
|