RepoAuditor 0.2.37__tar.gz → 0.2.38__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.37 → repoauditor-0.2.38}/PKG-INFO +1 -1
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Impl/ExistsRequirementImpl.py +1 -1
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/__init__.py +1 -1
- repoauditor-0.2.38/tests/Plugins/GitHubCustomization/CutomizationQuery_UnitTest.py +60 -0
- repoauditor-0.2.38/tests/Plugins/GitHubCustomization/ExistsRequirementImpl_UnitTest.py +121 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -10
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -10
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -2
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -10
- repoauditor-0.2.38/tests/Plugins/GitHubRulesets/RulsesetQuery_UnitTest.py +62 -0
- repoauditor-0.2.38/tests/Plugins/conftest.py +20 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.copier-answers.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/CODEOWNERS +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/actions/release_impl/action.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/pull_request_template.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/release_sources.yaml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/workflows/CICD.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/workflows/CICD_impl.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/workflows/EndToEnd.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.github/workflows/codeql.yml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.gitignore +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.pre-commit-config.yaml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/.python-version +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/CODE_OF_CONDUCT.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/CONTRIBUTING.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/DEVELOPMENT.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/GOVERNANCE.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/LICENSE +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/MAINTAINERS.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/README.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/SECURITY.md +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/minisign_key.pub +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/pyproject.toml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/AutoGitSemVer.yaml +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/CommandLineProcessor.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Display.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/EntryPoint.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/ExecuteModules.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Impl/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Module.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugin.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowForcePushes.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/Protected.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/AutoMerge.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DefaultBranch.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DeleteHeadBranches.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DependabotSecurityUpdates.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Description.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardValueRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/License.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommit.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommitMessage.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Private.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/RebaseMergeCommit.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanning.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanningPushProtection.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashCommitMerge.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashMergeCommitMessage.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportDiscussions.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportIssues.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportProjects.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportWikis.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/TemplateRepository.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/WebCommitSignoff.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/CustomizationQuery.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Impl/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Module.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/CodeOwners.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/Contributing.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/IssueTemplates.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/PullRequestTemplates.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/SecurityPolicy.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomizationPlugin.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/EnableRulesetRequirementImpl.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Module.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireStatusChecks.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/RulesetQuery.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesetsPlugin.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Query.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Requirement.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/py.typed +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/src/github_auditor/__init__.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/CommandLineProcessor_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/EntryPoint_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/ExecuteModules_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Module_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugin_UnitTest.py +0 -0
- {repoauditor-0.2.37/tests/Plugins → repoauditor-0.2.38/tests/Plugins/GitHubCustomization}/GitHubCustomization_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubCustomization_EndToEndTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +0 -0
- /repoauditor-0.2.37/tests/Plugins/GitHubModule/conftest.py → /repoauditor-0.2.38/tests/Plugins/GitHubModule/fixtures.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubRuleset_EndToEndTest.py +0 -0
- {repoauditor-0.2.37/tests/Plugins → repoauditor-0.2.38/tests/Plugins/GitHubRulesets}/GitHubRuleset_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHub_EndToEndTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/__snapshots__/GitHubCustomization_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/__snapshots__/GitHubRuleset_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/utilities.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Query_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Requirement_UnitTest.py +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
- {repoauditor-0.2.37 → repoauditor-0.2.38}/uv.lock +0 -0
|
@@ -79,7 +79,7 @@ class ExistsRequirementImpl(Requirement):
|
|
|
79
79
|
if full_file_path.is_dir() and any(full_file_path.iterdir()):
|
|
80
80
|
return Requirement.EvaluateImplResult(
|
|
81
81
|
EvaluateResult.Success,
|
|
82
|
-
f"File found in {
|
|
82
|
+
f"File found in {location} directory of the repository",
|
|
83
83
|
)
|
|
84
84
|
|
|
85
85
|
return Requirement.EvaluateImplResult(
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------------
|
|
2
|
+
# |
|
|
3
|
+
# | Copyright (c) 2024 Scientific Software Engineering Center at Georgia Tech
|
|
4
|
+
# | Distributed under the MIT License.
|
|
5
|
+
# |
|
|
6
|
+
# -------------------------------------------------------------------------------
|
|
7
|
+
"""Unit tests for CustomizationQuery.py"""
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
from git import Repo
|
|
11
|
+
|
|
12
|
+
from RepoAuditor.Plugins.GitHubCustomization.CustomizationQuery import CustomizationQuery, TemporaryDirectory
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def mock_clone_from(github_url, repo_dirname, branch="main"):
|
|
16
|
+
"""A mocked clone_from method for the git.Repo class."""
|
|
17
|
+
pass
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class MockTemporaryDirectory:
|
|
21
|
+
"""A mock class to replace tempfile.TemporaryDirectory."""
|
|
22
|
+
|
|
23
|
+
def __init__(self):
|
|
24
|
+
self.name = "test_temp_directory"
|
|
25
|
+
|
|
26
|
+
def cleanup(self):
|
|
27
|
+
"""Mocked cleanup method"""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@pytest.fixture(autouse=True)
|
|
31
|
+
def patch_temp_directory(monkeypatch):
|
|
32
|
+
monkeypatch.delattr("tempfile.TemporaryDirectory")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class TestCustomizationQuery:
|
|
36
|
+
def test_GetData(self, module_data, monkeypatch):
|
|
37
|
+
"""Test the GetData method."""
|
|
38
|
+
monkeypatch.setattr(
|
|
39
|
+
TemporaryDirectory,
|
|
40
|
+
"__init__",
|
|
41
|
+
MockTemporaryDirectory.__init__,
|
|
42
|
+
)
|
|
43
|
+
monkeypatch.setattr(
|
|
44
|
+
Repo,
|
|
45
|
+
"clone_from",
|
|
46
|
+
mock_clone_from,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
query = CustomizationQuery()
|
|
50
|
+
query_data = query.GetData(module_data)
|
|
51
|
+
|
|
52
|
+
assert query_data["repo_dir"].name == "test_temp_directory"
|
|
53
|
+
|
|
54
|
+
def test_Cleanup(self, module_data):
|
|
55
|
+
"""Test the Cleanup method."""
|
|
56
|
+
query = CustomizationQuery()
|
|
57
|
+
module_data["repo_dir"] = MockTemporaryDirectory()
|
|
58
|
+
result = query.Cleanup(module_data)
|
|
59
|
+
|
|
60
|
+
assert result is None
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------------
|
|
2
|
+
# |
|
|
3
|
+
# | Copyright (c) 2024 Scientific Software Engineering Center at Georgia Tech
|
|
4
|
+
# | Distributed under the MIT License.
|
|
5
|
+
# |
|
|
6
|
+
# -------------------------------------------------------------------------------
|
|
7
|
+
"""Unit tests for GitHub/Impl/ClassicValueRequirementImpl.py"""
|
|
8
|
+
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from tempfile import TemporaryDirectory
|
|
11
|
+
|
|
12
|
+
from RepoAuditor.Plugins.GitHubCustomization.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
13
|
+
from RepoAuditor.Requirement import EvaluateResult
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MockDirectory:
|
|
17
|
+
def __init__(self):
|
|
18
|
+
self.name = "repository"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class TestExistsRequirementImpl:
|
|
22
|
+
def test_Constructor(self):
|
|
23
|
+
"""Test the requirement implementation constructor."""
|
|
24
|
+
requirement = ExistsRequirementImpl(
|
|
25
|
+
name="Exists Some Value",
|
|
26
|
+
dynamic_arg_name="exists",
|
|
27
|
+
github_file="README.md",
|
|
28
|
+
possible_locations=[
|
|
29
|
+
"README.md",
|
|
30
|
+
],
|
|
31
|
+
resolution="Get test to pass",
|
|
32
|
+
rationale="For testing",
|
|
33
|
+
)
|
|
34
|
+
assert requirement.github_file == "README.md"
|
|
35
|
+
|
|
36
|
+
def test_Disabled(self):
|
|
37
|
+
"""Test disabled requirement."""
|
|
38
|
+
requirement = ExistsRequirementImpl(
|
|
39
|
+
name="Exists Some Value",
|
|
40
|
+
dynamic_arg_name="exists",
|
|
41
|
+
github_file="README.md",
|
|
42
|
+
possible_locations=[
|
|
43
|
+
"README.md",
|
|
44
|
+
],
|
|
45
|
+
resolution="Get test to pass",
|
|
46
|
+
rationale="For testing",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
query_data = {}
|
|
50
|
+
requirement_args = {"exists": False}
|
|
51
|
+
result = requirement.Evaluate(query_data, requirement_args)
|
|
52
|
+
assert result.result == EvaluateResult.DoesNotApply
|
|
53
|
+
|
|
54
|
+
def test_NotFound(self):
|
|
55
|
+
"""Test for when file is not found."""
|
|
56
|
+
requirement = ExistsRequirementImpl(
|
|
57
|
+
name="Exists Some Value",
|
|
58
|
+
dynamic_arg_name="exists",
|
|
59
|
+
github_file="README.md",
|
|
60
|
+
possible_locations=[
|
|
61
|
+
"MEREAD.md",
|
|
62
|
+
],
|
|
63
|
+
resolution="Get test to pass",
|
|
64
|
+
rationale="For testing",
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
query_data = {"repo_dir": MockDirectory()}
|
|
68
|
+
requirement_args = {"exists": True}
|
|
69
|
+
result = requirement.Evaluate(query_data, requirement_args)
|
|
70
|
+
assert result.result == EvaluateResult.Error
|
|
71
|
+
assert "No README.md file found" in result.context
|
|
72
|
+
|
|
73
|
+
def test_Found(self):
|
|
74
|
+
"""Test for when file is found as is."""
|
|
75
|
+
requirement = ExistsRequirementImpl(
|
|
76
|
+
name="Exists Some Value",
|
|
77
|
+
dynamic_arg_name="exists",
|
|
78
|
+
github_file="README.md",
|
|
79
|
+
possible_locations=[
|
|
80
|
+
"README.md",
|
|
81
|
+
],
|
|
82
|
+
resolution="Get test to pass",
|
|
83
|
+
rationale="For testing",
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
tempdir = TemporaryDirectory()
|
|
87
|
+
with open(Path(tempdir.name, "README.md"), "w") as f:
|
|
88
|
+
f.write("temp file in temp directory")
|
|
89
|
+
|
|
90
|
+
query_data = {"repo_dir": tempdir}
|
|
91
|
+
requirement_args = {"exists": True}
|
|
92
|
+
result = requirement.Evaluate(query_data, requirement_args)
|
|
93
|
+
assert result.result == EvaluateResult.Success
|
|
94
|
+
assert "README.md found in repository" in result.context
|
|
95
|
+
|
|
96
|
+
def test_FoundInDirectory(self):
|
|
97
|
+
"""Test if provided path is directory."""
|
|
98
|
+
requirement = ExistsRequirementImpl(
|
|
99
|
+
name="Exists Some Value",
|
|
100
|
+
dynamic_arg_name="exists",
|
|
101
|
+
github_file="README.md",
|
|
102
|
+
possible_locations=[
|
|
103
|
+
"docs",
|
|
104
|
+
],
|
|
105
|
+
resolution="Get test to pass",
|
|
106
|
+
rationale="For testing",
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
tempdir = TemporaryDirectory()
|
|
110
|
+
# Create "docs" directory
|
|
111
|
+
docs_dir = Path(tempdir.name) / "docs"
|
|
112
|
+
docs_dir.mkdir(parents=True)
|
|
113
|
+
|
|
114
|
+
with open(docs_dir / "README.md", "w") as f:
|
|
115
|
+
f.write("temp file in temp directory")
|
|
116
|
+
|
|
117
|
+
query_data = {"repo_dir": tempdir}
|
|
118
|
+
requirement_args = {"exists": True}
|
|
119
|
+
result = requirement.Evaluate(query_data, requirement_args)
|
|
120
|
+
assert result.result == EvaluateResult.Success
|
|
121
|
+
assert "File found in docs directory of the repository" in result.context
|
|
@@ -6,17 +6,7 @@
|
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
7
|
"""Unit tests for ClassicBranchProtectionQuery.py"""
|
|
8
8
|
|
|
9
|
-
import pytest
|
|
10
|
-
|
|
11
9
|
from RepoAuditor.Plugins.GitHub.ClassicBranchProtectionQuery import ClassicBranchProtectionQuery
|
|
12
|
-
from RepoAuditor.Plugins.GitHubBase.Module import _GitHubSession
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@pytest.fixture
|
|
16
|
-
def module_data():
|
|
17
|
-
return {
|
|
18
|
-
"session": _GitHubSession("https://github.com/gt-sse-center/RepoAuditor", "pat"),
|
|
19
|
-
}
|
|
20
10
|
|
|
21
11
|
|
|
22
12
|
def get_mock_request(
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py
RENAMED
|
@@ -6,17 +6,7 @@
|
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
7
|
"""Unit tests for DefaultBranchQuery.py"""
|
|
8
8
|
|
|
9
|
-
import pytest
|
|
10
|
-
|
|
11
9
|
from RepoAuditor.Plugins.GitHub.DefaultBranchQuery import DefaultBranchQuery
|
|
12
|
-
from RepoAuditor.Plugins.GitHubBase.Module import _GitHubSession
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@pytest.fixture
|
|
16
|
-
def module_data():
|
|
17
|
-
return {
|
|
18
|
-
"session": _GitHubSession("https://github.com/gt-sse-center/RepoAuditor", "pat"),
|
|
19
|
-
}
|
|
20
10
|
|
|
21
11
|
|
|
22
12
|
def get_mock_request(
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py
RENAMED
|
@@ -6,17 +6,7 @@
|
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
7
|
"""Unit tests for StandardQuery.py"""
|
|
8
8
|
|
|
9
|
-
import pytest
|
|
10
|
-
|
|
11
9
|
from RepoAuditor.Plugins.GitHub.StandardQuery import StandardQuery
|
|
12
|
-
from RepoAuditor.Plugins.GitHubBase.Module import _GitHubSession
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@pytest.fixture
|
|
16
|
-
def module_data():
|
|
17
|
-
return {
|
|
18
|
-
"session": _GitHubSession("https://github.com/gt-sse-center/RepoAuditor", "pat"),
|
|
19
|
-
}
|
|
20
10
|
|
|
21
11
|
|
|
22
12
|
def get_mock_request(
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------------
|
|
2
|
+
# |
|
|
3
|
+
# | Copyright (c) 2024 Scientific Software Engineering Center at Georgia Tech
|
|
4
|
+
# | Distributed under the MIT License.
|
|
5
|
+
# |
|
|
6
|
+
# -------------------------------------------------------------------------------
|
|
7
|
+
"""Unit tests for RulesetQuery.py"""
|
|
8
|
+
|
|
9
|
+
from RepoAuditor.Plugins.GitHubRulesets.RulesetQuery import RulesetQuery
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_mock_request(
|
|
13
|
+
status_code: int = 200,
|
|
14
|
+
):
|
|
15
|
+
"""A function which creates and returns a `mock_request` function."""
|
|
16
|
+
|
|
17
|
+
class MockedResponse:
|
|
18
|
+
def __init__(self, data, status_code):
|
|
19
|
+
self._data = data
|
|
20
|
+
self.status_code = status_code
|
|
21
|
+
|
|
22
|
+
def json(self):
|
|
23
|
+
return self._data
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def raise_for_status():
|
|
27
|
+
pass
|
|
28
|
+
|
|
29
|
+
def mock_request(method, url, *args, **kwargs):
|
|
30
|
+
"""The function to use for monkeypatching"""
|
|
31
|
+
# remove leading /
|
|
32
|
+
if len(url) > 0 and url[0] == "/":
|
|
33
|
+
url = url[1:]
|
|
34
|
+
|
|
35
|
+
if method.lower() == "get":
|
|
36
|
+
if url == "":
|
|
37
|
+
return MockedResponse({"default_branch": "main"}, status_code)
|
|
38
|
+
elif url == "rules/branches/main":
|
|
39
|
+
return MockedResponse(
|
|
40
|
+
[
|
|
41
|
+
{
|
|
42
|
+
"ruleset_id": 117,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
status_code,
|
|
46
|
+
)
|
|
47
|
+
elif url == "rulesets/117":
|
|
48
|
+
return MockedResponse("valid-test-data", status_code)
|
|
49
|
+
|
|
50
|
+
return mock_request
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class TestRulesetQuery:
|
|
54
|
+
def test_GetData(self, module_data, monkeypatch):
|
|
55
|
+
"""Test the GetData method."""
|
|
56
|
+
monkeypatch.setattr(module_data["session"], "request", get_mock_request())
|
|
57
|
+
query = RulesetQuery()
|
|
58
|
+
query_data = query.GetData(module_data)
|
|
59
|
+
|
|
60
|
+
assert len(query_data["rules"]) == 1
|
|
61
|
+
assert query_data["rules"][0]["ruleset_id"] == 117
|
|
62
|
+
assert query_data["rules"][0]["ruleset"] == "valid-test-data"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------------
|
|
2
|
+
# |
|
|
3
|
+
# | Copyright (c) 2024 Scientific Software Engineering Center at Georgia Tech
|
|
4
|
+
# | Distributed under the MIT License.
|
|
5
|
+
# |
|
|
6
|
+
# -------------------------------------------------------------------------------
|
|
7
|
+
"""Common test fixtures for Plugins"""
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
from GitHubModule.fixtures import session
|
|
11
|
+
|
|
12
|
+
from RepoAuditor.Plugins.GitHubBase.Module import _GitHubSession
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.fixture
|
|
16
|
+
def module_data():
|
|
17
|
+
return {
|
|
18
|
+
"session": _GitHubSession("https://github.com/gt-sse-center/RepoAuditor", "pat"),
|
|
19
|
+
"url": "https://github.com/gt-sse-center/RepoAuditor",
|
|
20
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/Module.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomization/__init__.py
RENAMED
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubCustomizationPlugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/RulesetQuery.py
RENAMED
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/src/RepoAuditor/Plugins/GitHubRulesets/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{repoauditor-0.2.37 → repoauditor-0.2.38}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|