RepoAuditor 0.2.41__tar.gz → 0.2.43__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.41 → repoauditor-0.2.43}/.github/workflows/CICD.yml +1 -1
- {repoauditor-0.2.41 → repoauditor-0.2.43}/DEVELOPMENT.md +2 -12
- {repoauditor-0.2.41 → repoauditor-0.2.43}/PKG-INFO +2 -1
- {repoauditor-0.2.41 → repoauditor-0.2.43}/pyproject.toml +2 -1
- repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization/CustomizationQuery.py → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards/CommunityStandardsQuery.py +9 -9
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Impl/ExistsRequirementImpl.py +1 -1
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Module.py +7 -7
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Requirements/CodeOwners.py +1 -1
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Requirements/Contributing.py +1 -1
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Requirements/IssueTemplates.py +1 -1
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Requirements/PullRequestTemplates.py +1 -1
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Requirements/SecurityPolicy.py +1 -1
- repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomizationPlugin.py → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandardsPlugin.py +2 -2
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/__init__.py +1 -1
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/ExecuteModules_UnitTest.py +21 -3
- repoauditor-0.2.41/tests/Plugins/GitHubCustomization/CutomizationQuery_UnitTest.py → repoauditor-0.2.43/tests/Plugins/GitHubCommunityStandards/CommunityStandardsQuery_UnitTest.py +8 -5
- {repoauditor-0.2.41/tests/Plugins/GitHubCustomization → repoauditor-0.2.43/tests/Plugins/GitHubCommunityStandards}/ExistsRequirementImpl_UnitTest.py +1 -1
- repoauditor-0.2.41/tests/Plugins/GitHubCustomization/GitHubCustomization_UnitTest.py → repoauditor-0.2.43/tests/Plugins/GitHubCommunityStandards/GitHubCommunityStandards_UnitTest.py +6 -6
- repoauditor-0.2.41/tests/Plugins/GitHubCustomization_EndToEndTest.py → repoauditor-0.2.43/tests/Plugins/GitHubCommunityStandards_EndToEndTest.py +88 -42
- repoauditor-0.2.41/tests/Plugins/__snapshots__/GitHubCustomization_EndToEndTest.ambr → repoauditor-0.2.43/tests/Plugins/__snapshots__/GitHubCommunityStandards_EndToEndTest.ambr +40 -40
- {repoauditor-0.2.41 → repoauditor-0.2.43}/uv.lock +2 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.copier-answers.yml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/CODEOWNERS +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/actions/release_impl/action.yml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/pull_request_template.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/release_sources.yaml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/workflows/CICD_impl.yml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/workflows/EndToEnd.yml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.github/workflows/codeql.yml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.gitignore +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.pre-commit-config.yaml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/.python-version +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/CODE_OF_CONDUCT.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/CONTRIBUTING.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/GOVERNANCE.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/LICENSE +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/MAINTAINERS.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/README.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/SECURITY.md +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/minisign_key.pub +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/AutoGitSemVer.yaml +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/CommandLineProcessor.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Display.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/EntryPoint.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/ExecuteModules.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Impl/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Module.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugin.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowForcePushes.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/Protected.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/AutoMerge.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DefaultBranch.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DeleteHeadBranches.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DependabotSecurityUpdates.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Description.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardValueRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/License.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommit.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommitMessage.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Private.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/RebaseMergeCommit.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanning.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanningPushProtection.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashCommitMerge.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashMergeCommitMessage.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportDiscussions.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportIssues.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportProjects.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportWikis.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/TemplateRepository.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/WebCommitSignoff.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Impl/__init__.py +0 -0
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/Requirements/__init__.py +0 -0
- {repoauditor-0.2.41/src/RepoAuditor/Plugins/GitHubCustomization → repoauditor-0.2.43/src/RepoAuditor/Plugins/GitHubCommunityStandards}/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/EnableRulesetRequirementImpl.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Module.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireStatusChecks.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/RulesetQuery.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesets/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/GitHubRulesetsPlugin.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Plugins/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Query.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/Requirement.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/RepoAuditor/py.typed +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/src/github_auditor/__init__.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/CommandLineProcessor_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/EntryPoint_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Module_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugin_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubModule/fixtures.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubRuleset_EndToEndTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubRulesets/EnableRulesetRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubRulesets/GitHubRuleset_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHubRulesets/RulsesetQuery_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/GitHub_EndToEndTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/__snapshots__/GitHubRuleset_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/conftest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Plugins/utilities.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Query_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/Requirement_UnitTest.py +0 -0
- {repoauditor-0.2.41 → repoauditor-0.2.43}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
with:
|
|
27
27
|
# These values can be customized for your specific requirements.
|
|
28
28
|
operating_system_json_string: "[ 'macos-latest', 'ubuntu-latest', 'windows-latest' ]"
|
|
29
|
-
python_version_json_string: "['3.13'
|
|
29
|
+
python_version_json_string: "['3.13', '3.12', '3.11', '3.10']"
|
|
30
30
|
python_package_version: "3.13"
|
|
31
31
|
coverage_badge_gist_id: "2f9d770d13e3a148424f374f74d41f4b"
|
|
32
32
|
coverage_badge_gist_username: "davidbrownell"
|
|
@@ -4,18 +4,8 @@
|
|
|
4
4
|
| --- | --- | --- |
|
|
5
5
|
| 1. Fork the repository | -- | https://github.com/gt-sse-center/RepoAuditor/fork |
|
|
6
6
|
| 2. Create a PAT for your forked repository | -- | See [PAT setup instructions](README.md#personal-access-token-pat) |
|
|
7
|
-
| 3.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
To sync the `test-GitHubCustomization` branch using the command line:
|
|
12
|
-
```bash
|
|
13
|
-
git clone <REPOAUDITOR_FORK_URL>
|
|
14
|
-
git remote add upstream https://github.com/gt-sse-center/RepoAuditor
|
|
15
|
-
git fetch upstream
|
|
16
|
-
git checkout -b test-GitHubCustomization upstream/test-GitHubCustomization
|
|
17
|
-
git push origin test-GitHubCustomization
|
|
18
|
-
```
|
|
7
|
+
| 3. Update your forked repository settings to match RepoAuditor's defaults | -- |
|
|
8
|
+
|
|
19
9
|
|
|
20
10
|
# Local Development
|
|
21
11
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: RepoAuditor
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.43
|
|
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
|
|
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Requires-Python: >=3.10
|
|
20
20
|
Requires-Dist: dbrownell-common>=0.14.10
|
|
21
|
+
Requires-Dist: gitpython>=3.1.44
|
|
21
22
|
Requires-Dist: pluggy>=1.5.0
|
|
22
23
|
Requires-Dist: requests>=2.32.3
|
|
23
24
|
Requires-Dist: typer-config[yaml]>=1.4.2
|
|
@@ -8,6 +8,7 @@ authors = [
|
|
|
8
8
|
requires-python = ">= 3.10"
|
|
9
9
|
dependencies = [
|
|
10
10
|
"dbrownell-common>=0.14.10",
|
|
11
|
+
"gitpython>=3.1.44",
|
|
11
12
|
"pluggy>=1.5.0",
|
|
12
13
|
"requests>=2.32.3",
|
|
13
14
|
"typer>=0.15.3",
|
|
@@ -39,7 +40,7 @@ repo_auditor = "RepoAuditor:EntryPoint.app"
|
|
|
39
40
|
|
|
40
41
|
[project.entry-points.RepoAuditor]
|
|
41
42
|
GitHubPlugin = "RepoAuditor.Plugins.GitHubPlugin"
|
|
42
|
-
|
|
43
|
+
GitHubCommunityStandardsPlugin = "RepoAuditor.Plugins.GitHubCommunityStandardsPlugin"
|
|
43
44
|
GitHubRulesetPlugin="RepoAuditor.Plugins.GitHubRulesetsPlugin"
|
|
44
45
|
|
|
45
46
|
[build-system]
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# | Distributed under the MIT License.
|
|
5
5
|
# |
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
|
-
"""Contains the
|
|
7
|
+
"""Contains the CommunityStandardsQuery object."""
|
|
8
8
|
|
|
9
9
|
from tempfile import TemporaryDirectory
|
|
10
10
|
from typing import Any, Optional
|
|
@@ -12,20 +12,20 @@ from typing import Any, Optional
|
|
|
12
12
|
from dbrownell_Common.Types import override # type: ignore[import-untyped]
|
|
13
13
|
from git import Repo
|
|
14
14
|
|
|
15
|
-
from RepoAuditor.Plugins.
|
|
16
|
-
from RepoAuditor.Plugins.
|
|
17
|
-
from RepoAuditor.Plugins.
|
|
18
|
-
from RepoAuditor.Plugins.
|
|
19
|
-
from RepoAuditor.Plugins.
|
|
15
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Requirements.CodeOwners import CodeOwners
|
|
16
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Requirements.Contributing import Contributing
|
|
17
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Requirements.IssueTemplates import IssueTemplates
|
|
18
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Requirements.PullRequestTemplates import PullRequestTemplate
|
|
19
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Requirements.SecurityPolicy import SecurityPolicy
|
|
20
20
|
from RepoAuditor.Query import ExecutionStyle, Query
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
class
|
|
24
|
-
"""Query with requirements that check for GitHub
|
|
23
|
+
class CommunityStandardsQuery(Query):
|
|
24
|
+
"""Query with requirements that check for GitHub CommunityStandards files."""
|
|
25
25
|
|
|
26
26
|
def __init__(self) -> None:
|
|
27
27
|
super().__init__(
|
|
28
|
-
"
|
|
28
|
+
"CommunityStandardsQuery",
|
|
29
29
|
ExecutionStyle.Parallel,
|
|
30
30
|
[
|
|
31
31
|
CodeOwners(),
|
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
# | Distributed under the MIT License.
|
|
5
5
|
# |
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
|
-
"""Contains the
|
|
7
|
+
"""Contains the GitHubCommunityStandardsModule object."""
|
|
8
8
|
|
|
9
9
|
from RepoAuditor.Module import ExecutionStyle
|
|
10
10
|
from RepoAuditor.Plugins.GitHubBase.Module import GitHubBaseModule
|
|
11
|
-
from RepoAuditor.Plugins.
|
|
11
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.CommunityStandardsQuery import CommunityStandardsQuery
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
class
|
|
15
|
-
"""Module that validates GitHub repository
|
|
14
|
+
class GitHubCommunityStandardsModule(GitHubBaseModule):
|
|
15
|
+
"""Module that validates GitHub repository files for Community Standards."""
|
|
16
16
|
|
|
17
17
|
def __init__(self) -> None:
|
|
18
18
|
super().__init__(
|
|
19
|
-
"
|
|
20
|
-
"Validates GitHub repository
|
|
19
|
+
"GitHubCommunityStandards",
|
|
20
|
+
"Validates GitHub repository files for Community Standards.",
|
|
21
21
|
ExecutionStyle.Parallel,
|
|
22
22
|
[
|
|
23
|
-
|
|
23
|
+
CommunityStandardsQuery(),
|
|
24
24
|
],
|
|
25
25
|
requires_explicit_include=True,
|
|
26
26
|
)
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import textwrap
|
|
10
10
|
|
|
11
|
-
from RepoAuditor.Plugins.
|
|
11
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class CodeOwners(ExistsRequirementImpl):
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import textwrap
|
|
10
10
|
|
|
11
|
-
from RepoAuditor.Plugins.
|
|
11
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class Contributing(ExistsRequirementImpl):
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
7
|
"""Contains the IssueTemplates requirement."""
|
|
8
8
|
|
|
9
|
-
from RepoAuditor.Plugins.
|
|
9
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class IssueTemplates(ExistsRequirementImpl):
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
7
|
"""Contains the PullRequestTemplate requirement."""
|
|
8
8
|
|
|
9
|
-
from RepoAuditor.Plugins.
|
|
9
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class PullRequestTemplate(ExistsRequirementImpl):
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import textwrap
|
|
10
10
|
|
|
11
|
-
from RepoAuditor.Plugins.
|
|
11
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class SecurityPolicy(ExistsRequirementImpl):
|
|
@@ -10,11 +10,11 @@ import pluggy
|
|
|
10
10
|
|
|
11
11
|
from RepoAuditor import APP_NAME
|
|
12
12
|
from RepoAuditor.Module import Module
|
|
13
|
-
from RepoAuditor.Plugins.
|
|
13
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Module import GitHubCommunityStandardsModule
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
# ----------------------------------------------------------------------
|
|
17
17
|
@pluggy.HookimplMarker(APP_NAME)
|
|
18
18
|
def GetModule() -> Module:
|
|
19
19
|
"""Return GitHub Customization Module."""
|
|
20
|
-
return
|
|
20
|
+
return GitHubCommunityStandardsModule()
|
|
@@ -322,8 +322,24 @@ class TestExecute:
|
|
|
322
322
|
|
|
323
323
|
assert all_results == [[]]
|
|
324
324
|
|
|
325
|
-
|
|
326
|
-
|
|
325
|
+
# Assuming major version is 3
|
|
326
|
+
if sys.version_info[1] < 11:
|
|
327
|
+
expected_content = textwrap.dedent(
|
|
328
|
+
"""\
|
|
329
|
+
Heading...
|
|
330
|
+
Processing 1 module...
|
|
331
|
+
Processing 'MyModule' (1 of 1)...
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
DONE! (ReturnCode.DOESNOTAPPLY, <scrubbed duration>)
|
|
335
|
+
DONE! (ReturnCode.DOESNOTAPPLY, <scrubbed duration>)
|
|
336
|
+
DONE! (ReturnCode.DOESNOTAPPLY, <scrubbed duration>)
|
|
337
|
+
""",
|
|
338
|
+
)
|
|
339
|
+
else:
|
|
340
|
+
# From version 3.11 onwards, IntEnum.__str__ returns the int value.
|
|
341
|
+
expected_content = textwrap.dedent(
|
|
342
|
+
"""\
|
|
327
343
|
Heading...
|
|
328
344
|
Processing 1 module...
|
|
329
345
|
Processing 'MyModule' (1 of 1)...
|
|
@@ -333,7 +349,9 @@ class TestExecute:
|
|
|
333
349
|
DONE! (2, <scrubbed duration>)
|
|
334
350
|
DONE! (2, <scrubbed duration>)
|
|
335
351
|
""",
|
|
336
|
-
|
|
352
|
+
)
|
|
353
|
+
|
|
354
|
+
assert cast(str, next(dm_and_content)) == expected_content
|
|
337
355
|
|
|
338
356
|
|
|
339
357
|
# ----------------------------------------------------------------------
|
|
@@ -4,12 +4,15 @@
|
|
|
4
4
|
# | Distributed under the MIT License.
|
|
5
5
|
# |
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
|
-
"""Unit tests for
|
|
7
|
+
"""Unit tests for CommunityStandardsQuery.py"""
|
|
8
8
|
|
|
9
9
|
import pytest
|
|
10
10
|
from git import Repo
|
|
11
11
|
|
|
12
|
-
from RepoAuditor.Plugins.
|
|
12
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.CommunityStandardsQuery import (
|
|
13
|
+
CommunityStandardsQuery,
|
|
14
|
+
TemporaryDirectory,
|
|
15
|
+
)
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
def mock_clone_from(github_url, repo_dirname, branch="main"):
|
|
@@ -32,7 +35,7 @@ def patch_temp_directory(monkeypatch):
|
|
|
32
35
|
monkeypatch.delattr("tempfile.TemporaryDirectory")
|
|
33
36
|
|
|
34
37
|
|
|
35
|
-
class
|
|
38
|
+
class TestCommunityStandardsQuery:
|
|
36
39
|
def test_GetData(self, module_data, monkeypatch):
|
|
37
40
|
"""Test the GetData method."""
|
|
38
41
|
monkeypatch.setattr(
|
|
@@ -46,14 +49,14 @@ class TestCustomizationQuery:
|
|
|
46
49
|
mock_clone_from,
|
|
47
50
|
)
|
|
48
51
|
|
|
49
|
-
query =
|
|
52
|
+
query = CommunityStandardsQuery()
|
|
50
53
|
query_data = query.GetData(module_data)
|
|
51
54
|
|
|
52
55
|
assert query_data["repo_dir"].name == "test_temp_directory"
|
|
53
56
|
|
|
54
57
|
def test_Cleanup(self, module_data):
|
|
55
58
|
"""Test the Cleanup method."""
|
|
56
|
-
query =
|
|
59
|
+
query = CommunityStandardsQuery()
|
|
57
60
|
module_data["repo_dir"] = MockTemporaryDirectory()
|
|
58
61
|
result = query.Cleanup(module_data)
|
|
59
62
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
from pathlib import Path
|
|
10
10
|
from tempfile import TemporaryDirectory
|
|
11
11
|
|
|
12
|
-
from RepoAuditor.Plugins.
|
|
12
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.Impl.ExistsRequirementImpl import ExistsRequirementImpl
|
|
13
13
|
from RepoAuditor.Requirement import EvaluateResult
|
|
14
14
|
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# | Distributed under the MIT License.
|
|
5
5
|
# |
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
|
-
"""Unit tests for the GitHub
|
|
7
|
+
"""Unit tests for the GitHub Community Standards Plugin"""
|
|
8
8
|
|
|
9
9
|
import sys
|
|
10
10
|
from pathlib import Path
|
|
@@ -12,7 +12,7 @@ from pathlib import Path
|
|
|
12
12
|
import pluggy
|
|
13
13
|
|
|
14
14
|
from RepoAuditor import APP_NAME
|
|
15
|
-
from RepoAuditor.Plugins.
|
|
15
|
+
from RepoAuditor.Plugins.GitHubCommunityStandardsPlugin import GetModule
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# ----------------------------------------------------------------------
|
|
@@ -28,7 +28,7 @@ def test_get_module_returns_object():
|
|
|
28
28
|
module = GetModule()
|
|
29
29
|
assert module is not None
|
|
30
30
|
assert hasattr(module, "name")
|
|
31
|
-
assert module.name == "
|
|
31
|
+
assert module.name == "GitHubCommunityStandards"
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
# ----------------------------------------------------------------------
|
|
@@ -55,7 +55,7 @@ def test_plugin_registration():
|
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
# ----------------------------------------------------------------------
|
|
58
|
-
class
|
|
58
|
+
class TestGitHubCommunityStandardsModule:
|
|
59
59
|
"""Unit tests for the GitHubCustomizaton module."""
|
|
60
60
|
|
|
61
61
|
def test_Construct(self):
|
|
@@ -63,11 +63,11 @@ class TestGitHubCustomizationModule:
|
|
|
63
63
|
module = GetModule()
|
|
64
64
|
|
|
65
65
|
assert module is not None
|
|
66
|
-
assert module.name == "
|
|
66
|
+
assert module.name == "GitHubCommunityStandards"
|
|
67
67
|
# Comment out checks that would fail with minimal implementation
|
|
68
68
|
# assert module.execution_style.name == "Parallel"
|
|
69
69
|
# assert len(module.queries) == 1
|
|
70
|
-
# assert isinstance(module.queries[0],
|
|
70
|
+
# assert isinstance(module.queries[0], CommunityStandardsQuery)
|
|
71
71
|
# assert module.requires_explicit_include is False
|
|
72
72
|
|
|
73
73
|
def test_GetDynamicArgDefinitions(self):
|
|
@@ -4,45 +4,79 @@
|
|
|
4
4
|
# | Distributed under the MIT License.
|
|
5
5
|
# |
|
|
6
6
|
# -------------------------------------------------------------------------------
|
|
7
|
-
"""End-to-end tests for the
|
|
7
|
+
"""End-to-end tests for the GitHubCommunityStandards plugin."""
|
|
8
8
|
|
|
9
|
+
import shutil
|
|
9
10
|
from pathlib import Path
|
|
11
|
+
from tempfile import TemporaryDirectory
|
|
12
|
+
from unittest.mock import patch
|
|
10
13
|
|
|
11
14
|
import pytest
|
|
12
15
|
from dbrownell_Common.TestHelpers.StreamTestHelpers import (
|
|
13
16
|
InitializeStreamCapabilities,
|
|
14
17
|
)
|
|
18
|
+
from git import Repo
|
|
15
19
|
from typer.testing import CliRunner
|
|
16
20
|
from utilities import CheckPATFileExists, GetGithubUrl, ScrubDurationGithuburlAndSpaces
|
|
17
21
|
|
|
18
22
|
from RepoAuditor.EntryPoint import app
|
|
23
|
+
from RepoAuditor.Plugins.GitHubCommunityStandards.CommunityStandardsQuery import CommunityStandardsQuery
|
|
19
24
|
|
|
20
25
|
# ----------------------------------------------------------------------
|
|
21
26
|
pytest.fixture(InitializeStreamCapabilities(), scope="session", autouse=True)
|
|
22
27
|
|
|
23
28
|
|
|
29
|
+
def GetDataFunctional(path_to_delete: str, is_directory=False):
|
|
30
|
+
"""A functional which returns a modified GetData method which
|
|
31
|
+
deletes the specified path in the cloned repo.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def GetData(self, module_data):
|
|
35
|
+
# Clone the GitHub repository to a temp directory
|
|
36
|
+
github_url = module_data["url"]
|
|
37
|
+
branch = module_data.get("branch", "main")
|
|
38
|
+
temp_repo_dir = TemporaryDirectory()
|
|
39
|
+
Repo.clone_from(github_url, temp_repo_dir.name, branch=branch)
|
|
40
|
+
|
|
41
|
+
path = Path(temp_repo_dir.name) / path_to_delete
|
|
42
|
+
|
|
43
|
+
if is_directory:
|
|
44
|
+
shutil.rmtree(path)
|
|
45
|
+
else:
|
|
46
|
+
path.unlink()
|
|
47
|
+
|
|
48
|
+
# Record the path and the temp directory for later cleanup
|
|
49
|
+
module_data["repo_dir"] = temp_repo_dir
|
|
50
|
+
return module_data
|
|
51
|
+
|
|
52
|
+
return GetData
|
|
53
|
+
|
|
54
|
+
|
|
24
55
|
# ----------------------------------------------------------------------
|
|
25
|
-
class
|
|
26
|
-
"""End-to-end tests for
|
|
56
|
+
class TestCommunityStandards:
|
|
57
|
+
"""End-to-end tests for community standards files in a GitHub repository."""
|
|
27
58
|
|
|
28
59
|
# ----------------------------------------------------------------------
|
|
29
60
|
def test_CodeOwners(self, pat_args, snapshot):
|
|
30
61
|
"""Test if a CODEOWNERS file exists in the repository."""
|
|
31
|
-
result = CliRunner().invoke(
|
|
62
|
+
result = CliRunner().invoke(
|
|
63
|
+
app,
|
|
64
|
+
pat_args + ["--GitHubCommunityStandards-CodeOwners-exists"],
|
|
65
|
+
)
|
|
32
66
|
|
|
33
67
|
assert result.exit_code == 0, result.output
|
|
34
68
|
assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
|
|
35
69
|
|
|
70
|
+
@patch.object(
|
|
71
|
+
CommunityStandardsQuery,
|
|
72
|
+
"GetData",
|
|
73
|
+
GetDataFunctional(".github/CODEOWNERS"),
|
|
74
|
+
)
|
|
36
75
|
def test_NoCodeOwners(self, pat_args, snapshot):
|
|
37
76
|
"""Test if a CODEOWNERS file does not exist in the repository."""
|
|
38
77
|
result = CliRunner().invoke(
|
|
39
78
|
app,
|
|
40
|
-
pat_args
|
|
41
|
-
+ [
|
|
42
|
-
"--GitHubCustomization-CodeOwners-exists",
|
|
43
|
-
"--GitHubCustomization-branch",
|
|
44
|
-
"test-GitHubCustomization",
|
|
45
|
-
],
|
|
79
|
+
pat_args + ["--GitHubCommunityStandards-CodeOwners-exists"],
|
|
46
80
|
)
|
|
47
81
|
|
|
48
82
|
assert result.exit_code == -1, result.output
|
|
@@ -50,21 +84,24 @@ class TestCustomization:
|
|
|
50
84
|
|
|
51
85
|
def test_Contributing(self, pat_args, snapshot):
|
|
52
86
|
"""Test if a CONTRIBUTING.md file exists in the repository."""
|
|
53
|
-
result = CliRunner().invoke(
|
|
87
|
+
result = CliRunner().invoke(
|
|
88
|
+
app,
|
|
89
|
+
pat_args + ["--GitHubCommunityStandards-Contributing-exists"],
|
|
90
|
+
)
|
|
54
91
|
|
|
55
92
|
assert result.exit_code == 0, result.output
|
|
56
93
|
assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
|
|
57
94
|
|
|
95
|
+
@patch.object(
|
|
96
|
+
CommunityStandardsQuery,
|
|
97
|
+
"GetData",
|
|
98
|
+
GetDataFunctional("CONTRIBUTING.md"),
|
|
99
|
+
)
|
|
58
100
|
def test_NoContributing(self, pat_args, snapshot):
|
|
59
101
|
"""Test if a CONTRIBUTING file does not exist in the repository."""
|
|
60
102
|
result = CliRunner().invoke(
|
|
61
103
|
app,
|
|
62
|
-
pat_args
|
|
63
|
-
+ [
|
|
64
|
-
"--GitHubCustomization-Contributing-exists",
|
|
65
|
-
"--GitHubCustomization-branch",
|
|
66
|
-
"test-GitHubCustomization",
|
|
67
|
-
],
|
|
104
|
+
pat_args + ["--GitHubCommunityStandards-Contributing-exists"],
|
|
68
105
|
)
|
|
69
106
|
|
|
70
107
|
assert result.exit_code == -1, result.output
|
|
@@ -72,43 +109,49 @@ class TestCustomization:
|
|
|
72
109
|
|
|
73
110
|
def test_IssueTemplate(self, pat_args, snapshot):
|
|
74
111
|
"""Test if an Issue template file (e.g. ISSUE_TEMPLATE.md) exists in the repository."""
|
|
75
|
-
result = CliRunner().invoke(app, pat_args + ["--
|
|
112
|
+
result = CliRunner().invoke(app, pat_args + ["--GitHubCommunityStandards-IssueTemplates-exists"])
|
|
76
113
|
|
|
77
114
|
assert result.exit_code == 0, result.output
|
|
78
115
|
assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
|
|
79
116
|
|
|
117
|
+
@patch.object(
|
|
118
|
+
CommunityStandardsQuery,
|
|
119
|
+
"GetData",
|
|
120
|
+
GetDataFunctional(".github/ISSUE_TEMPLATE", True),
|
|
121
|
+
)
|
|
80
122
|
def test_NoIssueTemplate(self, pat_args, snapshot):
|
|
81
123
|
"""Test if no Issue template file exists in the repository."""
|
|
82
124
|
result = CliRunner().invoke(
|
|
83
125
|
app,
|
|
84
|
-
pat_args
|
|
85
|
-
+ [
|
|
86
|
-
"--GitHubCustomization-IssueTemplates-exists",
|
|
87
|
-
"--GitHubCustomization-branch",
|
|
88
|
-
"test-GitHubCustomization",
|
|
89
|
-
],
|
|
126
|
+
pat_args + ["--GitHubCommunityStandards-IssueTemplates-exists"],
|
|
90
127
|
)
|
|
91
128
|
|
|
92
129
|
assert result.exit_code == -1, result.output
|
|
93
130
|
assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
|
|
94
131
|
|
|
95
132
|
def test_PullRequestTemplate(self, pat_args, snapshot):
|
|
96
|
-
"""
|
|
97
|
-
|
|
133
|
+
"""
|
|
134
|
+
Test if a Pull Request template file (e.g. PULL_REQUEST_TEMPLATE.md)
|
|
135
|
+
exists in the repository.
|
|
136
|
+
"""
|
|
137
|
+
result = CliRunner().invoke(
|
|
138
|
+
app,
|
|
139
|
+
pat_args + ["--GitHubCommunityStandards-PullRequestTemplate-exists"],
|
|
140
|
+
)
|
|
98
141
|
|
|
99
142
|
assert result.exit_code == 0, result.output
|
|
100
143
|
assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
|
|
101
144
|
|
|
145
|
+
@patch.object(
|
|
146
|
+
CommunityStandardsQuery,
|
|
147
|
+
"GetData",
|
|
148
|
+
GetDataFunctional(".github/pull_request_template.md"),
|
|
149
|
+
)
|
|
102
150
|
def test_NoPullRequestTemplate(self, pat_args, snapshot):
|
|
103
151
|
"""Test if no Pull Request template file exists in the repository."""
|
|
104
152
|
result = CliRunner().invoke(
|
|
105
153
|
app,
|
|
106
|
-
pat_args
|
|
107
|
-
+ [
|
|
108
|
-
"--GitHubCustomization-PullRequestTemplate-exists",
|
|
109
|
-
"--GitHubCustomization-branch",
|
|
110
|
-
"test-GitHubCustomization",
|
|
111
|
-
],
|
|
154
|
+
pat_args + ["--GitHubCommunityStandards-PullRequestTemplate-exists"],
|
|
112
155
|
)
|
|
113
156
|
|
|
114
157
|
assert result.exit_code == -1, result.output
|
|
@@ -116,21 +159,24 @@ class TestCustomization:
|
|
|
116
159
|
|
|
117
160
|
def test_SecurityPolicy(self, pat_args, snapshot):
|
|
118
161
|
"""Test if a Security policy file (e.g. SECURITY.md) exists in the repository."""
|
|
119
|
-
result = CliRunner().invoke(
|
|
162
|
+
result = CliRunner().invoke(
|
|
163
|
+
app,
|
|
164
|
+
pat_args + ["--GitHubCommunityStandards-SecurityPolicy-exists"],
|
|
165
|
+
)
|
|
120
166
|
|
|
121
167
|
assert result.exit_code == 0, result.output
|
|
122
168
|
assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
|
|
123
169
|
|
|
170
|
+
@patch.object(
|
|
171
|
+
CommunityStandardsQuery,
|
|
172
|
+
"GetData",
|
|
173
|
+
GetDataFunctional("SECURITY.md"),
|
|
174
|
+
)
|
|
124
175
|
def test_NoSecurityPolicy(self, pat_args, snapshot):
|
|
125
176
|
"""Test if no Security policy file exists in the repository."""
|
|
126
177
|
result = CliRunner().invoke(
|
|
127
178
|
app,
|
|
128
|
-
pat_args
|
|
129
|
-
+ [
|
|
130
|
-
"--GitHubCustomization-SecurityPolicy-exists",
|
|
131
|
-
"--GitHubCustomization-branch",
|
|
132
|
-
"test-GitHubCustomization",
|
|
133
|
-
],
|
|
179
|
+
pat_args + ["--GitHubCommunityStandards-SecurityPolicy-exists"],
|
|
134
180
|
)
|
|
135
181
|
|
|
136
182
|
assert result.exit_code == -1, result.output
|
|
@@ -144,8 +190,8 @@ class TestCustomization:
|
|
|
144
190
|
def args() -> list[str]:
|
|
145
191
|
return [
|
|
146
192
|
"--include",
|
|
147
|
-
"
|
|
148
|
-
"--
|
|
193
|
+
"GitHubCommunityStandards",
|
|
194
|
+
"--GitHubCommunityStandards-url",
|
|
149
195
|
GetGithubUrl(),
|
|
150
196
|
]
|
|
151
197
|
|
|
@@ -159,4 +205,4 @@ def pat_args(args) -> list[str]:
|
|
|
159
205
|
with _github_pat_filename.open() as f:
|
|
160
206
|
pat_value = f.read().strip()
|
|
161
207
|
|
|
162
|
-
return args + ["--
|
|
208
|
+
return args + ["--GitHubCommunityStandards-pat", pat_value]
|