RepoAuditor 0.2.78__tar.gz → 0.2.80__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.
Files changed (168) hide show
  1. {repoauditor-0.2.78 → repoauditor-0.2.80}/.gitignore +6 -0
  2. {repoauditor-0.2.78 → repoauditor-0.2.80}/DEVELOPMENT.md +6 -3
  3. {repoauditor-0.2.78 → repoauditor-0.2.80}/PKG-INFO +3 -2
  4. {repoauditor-0.2.78 → repoauditor-0.2.80}/README.md +1 -0
  5. {repoauditor-0.2.78 → repoauditor-0.2.80}/pyproject.toml +3 -3
  6. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/CommandLineProcessor.py +35 -16
  7. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/EntryPoint.py +3 -3
  8. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Impl/ExistsRequirementImpl.py +2 -2
  9. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +1 -1
  10. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowMainlineForcePushes.py +1 -1
  11. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +1 -1
  12. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +1 -1
  13. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +3 -3
  14. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +1 -1
  15. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +1 -1
  16. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +1 -1
  17. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +1 -1
  18. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +1 -1
  19. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +1 -1
  20. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +1 -1
  21. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +1 -1
  22. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/Protected.py +3 -3
  23. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +3 -2
  24. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +2 -2
  25. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequirePullRequests.py +1 -1
  26. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSignedCommits.py +1 -1
  27. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireStatusChecks.py +1 -1
  28. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/AutoMerge.py +1 -1
  29. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DeleteHeadBranches.py +1 -1
  30. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DependabotSecurityUpdates.py +1 -1
  31. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Description.py +2 -2
  32. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommit.py +1 -1
  33. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Private.py +3 -3
  34. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/RebaseMergeCommit.py +1 -1
  35. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanning.py +1 -1
  36. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanningPushProtection.py +1 -1
  37. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashCommitMerge.py +1 -1
  38. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SuggestUpdatingPullRequestBranches.py +1 -1
  39. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportDiscussions.py +1 -1
  40. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportIssues.py +1 -1
  41. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportProjects.py +1 -1
  42. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportWikis.py +1 -1
  43. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/TemplateRepository.py +1 -1
  44. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/WebCommitSignoff.py +1 -1
  45. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Requirement.py +1 -1
  46. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/__init__.py +1 -1
  47. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/CommandLineProcessor_UnitTest.py +1 -1
  48. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubEnterprise_EndToEndTest.py +30 -30
  49. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +8 -8
  50. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +1 -1
  51. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +2 -2
  52. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +2 -2
  53. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +3 -3
  54. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/EnableRulesetRequirementImpl_UnitTest.py +10 -10
  55. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/RulesetRequirements_UnitTest.py +11 -11
  56. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +7 -2
  57. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +2 -2
  58. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +6 -6
  59. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +2 -2
  60. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +2 -2
  61. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +9 -8
  62. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +2 -2
  63. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHub_EndToEndTest.py +33 -33
  64. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Requirement_UnitTest.py +2 -1
  65. {repoauditor-0.2.78 → repoauditor-0.2.80}/uv.lock +4 -4
  66. {repoauditor-0.2.78 → repoauditor-0.2.80}/.copier-answers.yml +0 -0
  67. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/CODEOWNERS +0 -0
  68. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  69. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  70. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  71. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  72. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/actions/release_impl/action.yml +0 -0
  73. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/pull_request_template.md +0 -0
  74. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/release_sources.yaml +0 -0
  75. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/workflows/CICD.yml +0 -0
  76. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/workflows/CICD_impl.yml +0 -0
  77. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/workflows/EndToEnd.yml +0 -0
  78. {repoauditor-0.2.78 → repoauditor-0.2.80}/.github/workflows/codeql.yml +0 -0
  79. {repoauditor-0.2.78 → repoauditor-0.2.80}/.pre-commit-config.yaml +0 -0
  80. {repoauditor-0.2.78 → repoauditor-0.2.80}/.python-version +0 -0
  81. {repoauditor-0.2.78 → repoauditor-0.2.80}/CODE_OF_CONDUCT.md +0 -0
  82. {repoauditor-0.2.78 → repoauditor-0.2.80}/CONTRIBUTING.md +0 -0
  83. {repoauditor-0.2.78 → repoauditor-0.2.80}/GOVERNANCE.md +0 -0
  84. {repoauditor-0.2.78 → repoauditor-0.2.80}/LICENSE +0 -0
  85. {repoauditor-0.2.78 → repoauditor-0.2.80}/MAINTAINERS.md +0 -0
  86. {repoauditor-0.2.78 → repoauditor-0.2.80}/SECURITY.md +0 -0
  87. {repoauditor-0.2.78 → repoauditor-0.2.80}/default_config.yaml +0 -0
  88. {repoauditor-0.2.78 → repoauditor-0.2.80}/minisign_key.pub +0 -0
  89. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/AutoGitSemVer.yaml +0 -0
  90. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Display.py +0 -0
  91. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/ExecuteModules.py +0 -0
  92. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
  93. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Impl/__init__.py +0 -0
  94. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Module.py +0 -0
  95. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugin.py +0 -0
  96. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/CommunityStandardsQuery.py +0 -0
  97. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Impl/__init__.py +0 -0
  98. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Module.py +0 -0
  99. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOfConduct.py +0 -0
  100. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOwners.py +0 -0
  101. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/Contributing.py +0 -0
  102. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/IssueTemplates.py +0 -0
  103. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/LicenseFile.py +0 -0
  104. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/PullRequestTemplates.py +0 -0
  105. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/ReadMe.py +0 -0
  106. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/SecurityPolicy.py +0 -0
  107. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/__init__.py +0 -0
  108. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandards/__init__.py +0 -0
  109. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/CommunityStandardsPlugin.py +0 -0
  110. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
  111. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
  112. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
  113. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
  114. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
  115. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
  116. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
  117. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/__init__.py +0 -0
  118. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
  119. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRulesetRequirementImpl.py +0 -0
  120. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
  121. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
  122. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/RulesetQuery.py +0 -0
  123. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/__init__.py +0 -0
  124. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
  125. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DefaultBranch.py +0 -0
  126. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
  127. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardValueRequirementImpl.py +0 -0
  128. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/__init__.py +0 -0
  129. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/License.py +0 -0
  130. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommitMessage.py +0 -0
  131. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashMergeCommitMessage.py +0 -0
  132. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/__init__.py +0 -0
  133. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
  134. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
  135. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
  136. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
  137. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Plugins/__init__.py +0 -0
  138. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/Query.py +0 -0
  139. {repoauditor-0.2.78 → repoauditor-0.2.80}/src/RepoAuditor/py.typed +0 -0
  140. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/EntryPoint_UnitTest.py +0 -0
  141. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/ExecuteModules_UnitTest.py +0 -0
  142. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Module_UnitTest.py +0 -0
  143. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugin_UnitTest.py +0 -0
  144. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/CommunityStandards/CommunityStandardsQuery_UnitTest.py +0 -0
  145. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/CommunityStandards/ExistsRequirementImpl_UnitTest.py +0 -0
  146. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/CommunityStandards/GitHubCommunityStandards_UnitTest.py +0 -0
  147. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/CommunityStandards_EndToEndTest.py +0 -0
  148. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
  149. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
  150. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
  151. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
  152. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
  153. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
  154. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
  155. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/RulsesetQuery_UnitTest.py +0 -0
  156. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -0
  157. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -0
  158. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
  159. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/GitHubModule/fixtures.py +0 -0
  160. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/__snapshots__/CommunityStandards_EndToEndTest.ambr +0 -0
  161. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/__snapshots__/GitHubEnterprise_EndToEndTest.ambr +0 -0
  162. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +0 -0
  163. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/conftest.py +0 -0
  164. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Plugins/utilities.py +0 -0
  165. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/Query_UnitTest.py +0 -0
  166. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/__init__.py +0 -0
  167. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
  168. {repoauditor-0.2.78 → repoauditor-0.2.80}/tests/conftest.py +0 -0
@@ -22,3 +22,9 @@ tests/Plugins/github_pat.txt
22
22
  tests/Plugins/github_gatech_pat.txt
23
23
  .DS_Store
24
24
  post_generation_instructions.html
25
+
26
+ # Ignore Personal Access Token (PAT) files
27
+ **/*PAT.txt
28
+
29
+ # Test coverage report
30
+ **/coverage.xml
@@ -79,7 +79,10 @@ Please follow the steps below to complete the configuration.
79
79
  - Check `Require a pull request before merging`.
80
80
  - Check `Require a pull request before merging -> Dismiss stale pull request approvals when new commits are pushed`.
81
81
  - Check `Require a pull request before merging -> Require approval of the most recent reviewable push`.
82
- - Check `Require status checks to pass before merging`, and add the `CI+CD Workflow / Validate (ubuntu-latest, 3.13)` or equivalent status check.
82
+ - Under `Protect matching branches`
83
+ - Check `Require status checks to pass before merging`.
84
+ - Check `Require status checks to pass before merging -> Require branches to be up to date before merging`.
85
+ - Add the `CI+CD Workflow / Validate (ubuntu-latest, 3.13)` or an equivalent status check.
83
86
  - Check `Require conversation resolution before merging`.
84
87
  - Check `Require signed commits`.
85
88
  - Check `Do not allow bypassing the above settings`.
@@ -97,7 +100,7 @@ Please follow the steps below to complete the configuration.
97
100
  - Enable `Restrict deletions`
98
101
  - Enable `Require signed commits`
99
102
  - Enable `Require a pull request before merging` with 1 required approval.
100
- - Enable `Require status checks to pass` with the `CI+CD Workflow / Validate (ubuntu-latest, 3.12)` check.
103
+ - Enable `Require status checks to pass` with the `CI+CD Workflow / Validate (ubuntu-latest, 3.12)` or an equivalent check.
101
104
  - Enable `Block force pushes`.
102
105
  - Be sure to hit `Save changes` at the end.
103
106
 
@@ -129,4 +132,4 @@ To verify that an artifact is valid, visit [the latest release](https://github.c
129
132
 
130
133
  ```shell
131
134
  uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>')"
132
- ```
135
+ ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RepoAuditor
3
- Version: 0.2.78
3
+ Version: 0.2.80
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
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
19
  Requires-Python: >=3.10
20
- Requires-Dist: dbrownell-common>=0.14.10
20
+ Requires-Dist: dbrownell-common>=0.16.0
21
21
  Requires-Dist: gitpython>=3.1.44
22
22
  Requires-Dist: pluggy>=1.5.0
23
23
  Requires-Dist: requests>=2.32.3
@@ -148,6 +148,7 @@ uvx RepoAuditor --include GitHub \
148
148
 
149
149
  The configuration (or config) file can make usage easier by recording preferences as well as facilitating sharing of enforced requirements within an organization.
150
150
  We have provided a sample configuration file called [default_config.yaml](https://github.com/gt-sse-center/RepoAuditor/blob/main/default_config.yaml), which can be used as:
151
+
151
152
  ```shell
152
153
  uvx run RepoAuditor --config default_config.yaml
153
154
  ```
@@ -121,6 +121,7 @@ uvx RepoAuditor --include GitHub \
121
121
 
122
122
  The configuration (or config) file can make usage easier by recording preferences as well as facilitating sharing of enforced requirements within an organization.
123
123
  We have provided a sample configuration file called [default_config.yaml](https://github.com/gt-sse-center/RepoAuditor/blob/main/default_config.yaml), which can be used as:
124
+
124
125
  ```shell
125
126
  uvx run RepoAuditor --config default_config.yaml
126
127
  ```
@@ -7,7 +7,7 @@ authors = [
7
7
  ]
8
8
  requires-python = ">= 3.10"
9
9
  dependencies = [
10
- "dbrownell-common>=0.14.10",
10
+ "dbrownell-common>=0.16.0",
11
11
  "gitpython>=3.1.44",
12
12
  "pluggy>=1.5.0",
13
13
  "requests>=2.32.3",
@@ -36,7 +36,7 @@ Repository = "https://github.com/gt-sse-center/RepoAuditor"
36
36
 
37
37
  [project.scripts]
38
38
  RepoAuditor = "RepoAuditor:EntryPoint.app"
39
- repo_auditor = "RepoAuditor:EntryPoint.app"
39
+ repoauditor = "RepoAuditor:EntryPoint.app"
40
40
 
41
41
  [project.entry-points.RepoAuditor]
42
42
  GitHubPlugin = "RepoAuditor.Plugins.GitHubPlugin"
@@ -61,7 +61,7 @@ dev = [
61
61
  path = "src/RepoAuditor/__init__.py"
62
62
 
63
63
  [tool.pytest.ini_options]
64
- addopts = "--verbose -vv --capture=no --cov=RepoAuditor --cov-fail-under=95.0"
64
+ addopts = "--verbose -vv --capture=no --cov=RepoAuditor --cov-fail-under=95.0 --cov-report html --cov-report term --cov-report xml:coverage.xml"
65
65
  python_files = [
66
66
  "**/*Test.py",
67
67
  ]
@@ -144,31 +144,50 @@ class CommandLineProcessor:
144
144
  # Requirement-level args
145
145
  for query in module.queries:
146
146
  for requirement in query.requirements:
147
- for key, value in requirement.GetDynamicArgDefinitions().items():
148
- dynamic_arg_definitions[
149
- f"{module.name}{argument_separator}{requirement.name}{argument_separator}{key}"
150
- ] = value
147
+ for key, value in requirement.GetDynamicArgDefinitions(argument_separator).items():
148
+ dynamic_arg_definitions[f"{module.name}{argument_separator}{key}"] = value
151
149
 
152
150
  # Now we process the definitions to get the dynamic arguments
153
151
  dynamic_args: dict[str, dict[str, Any]] = {}
154
152
 
155
- num_acceptable_dynamic_args_parts = 2
156
-
157
153
  for key, value in get_dynamic_args_func(dynamic_arg_definitions).items():
158
- parts = key.split(argument_separator)
159
- assert len(parts) >= num_acceptable_dynamic_args_parts
154
+ import re
160
155
 
161
- if parts[0] not in module_map:
162
- msg = f"'{parts[0]}' is not a recognized module name."
156
+ pattern = rf"(?P<module>[A-Za-z]+){argument_separator}(?P<has_no>no{argument_separator})?(?P<requirement_or_arg>[A-Za-z0-9]+)(?P<value>{argument_separator}[\S]+)?"
157
+ groups = re.match(
158
+ pattern,
159
+ key,
160
+ ).groupdict()
161
+
162
+ # Assert that module and requirement/arg are specified
163
+ assert groups["module"]
164
+ assert groups["requirement_or_arg"]
165
+
166
+ module_name = groups["module"]
167
+ requirement_or_arg = groups["requirement_or_arg"]
168
+ has_no = groups["has_no"]
169
+
170
+ if module_name not in module_map:
171
+ msg = f"'{module_name}' is not a recognized module name."
163
172
  raise ValueError(msg)
164
173
 
165
- if len(parts) == num_acceptable_dynamic_args_parts:
166
- dynamic_args.setdefault(parts[0], {})[parts[1]] = value
174
+ # The following if-elif block works as follows:
175
+ # First we check if `requirement_or_arg` is all lower case. If it is, then it is a module arg, else it is a requirement.
176
+ # If the flag has a requirement, we first check for a value (e.g. GitHub-License-value), in which case, we assign the value.
177
+ # Else, we check if the flag has a `no` in it, in which case it is a boolean flag with `no`, else (finally) a `yes`.
178
+ if requirement_or_arg.islower():
179
+ dynamic_args.setdefault(module_name, {})[requirement_or_arg] = value
167
180
  else:
168
- dynamic_args.setdefault(parts[0], {}).setdefault(None, {}).setdefault( # type: ignore[call-overload]
169
- parts[1],
170
- {},
171
- )[argument_separator.join(parts[2:])] = value
181
+ if groups["value"]:
182
+ value_key = groups["value"][1:]
183
+ elif has_no:
184
+ value_key = "no"
185
+ else:
186
+ value_key = "yes"
187
+
188
+ dynamic_args.setdefault(module_name, {}).setdefault(None, {}).setdefault(
189
+ requirement_or_arg, {}
190
+ )[value_key] = value
172
191
 
173
192
  return dynamic_args
174
193
 
@@ -125,10 +125,10 @@ def _HelpEpilog() -> str:
125
125
 
126
126
  for query in module.queries:
127
127
  for requirement in query.requirements:
128
- for key, value in requirement.GetDynamicArgDefinitions().items():
128
+ for key, value in requirement.GetDynamicArgDefinitions(ARGUMENT_SEPARATOR).items():
129
129
  requirement_arguments.append(
130
130
  TypeInfoToString(
131
- f"--{module.name}{ARGUMENT_SEPARATOR}{requirement.name}{ARGUMENT_SEPARATOR}{key}",
131
+ f"--{module.name}{ARGUMENT_SEPARATOR}{key}",
132
132
  value,
133
133
  ),
134
134
  )
@@ -166,7 +166,7 @@ def _HelpEpilog() -> str:
166
166
 
167
167
  Command Line Examples
168
168
  =====================
169
- repo_auditor --include GitHub --GitHub-url https://github.com/gt-sse-center/RepoAuditor --GitHub-pat <PAT or path to file containing PAT>
169
+ RepoAuditor --include GitHub --GitHub-url https://github.com/gt-sse-center/RepoAuditor --GitHub-pat <PAT or path to file containing PAT>
170
170
 
171
171
  """,
172
172
  )
@@ -61,10 +61,10 @@ class ExistsRequirementImpl(Requirement):
61
61
 
62
62
  # ----------------------------------------------------------------------
63
63
  @override
64
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
64
+ def GetDynamicArgDefinitions(self, argument_separator: str) -> dict[str, TypeDefinitionItemType]:
65
65
  """Get the definitions for the arguments to this requirement."""
66
66
  return {
67
- self.dynamic_arg_name: (
67
+ f"{self.name}{argument_separator}{self.dynamic_arg_name}": (
68
68
  bool,
69
69
  typer.Option(
70
70
  False,
@@ -22,7 +22,7 @@ class AllowDeletions(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "AllowDeletions",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "Rules applied to everyone including administrators",
27
27
  "Allow deletions",
28
28
  lambda data: data["branch_protection_data"]["allow_deletions"]["enabled"],
@@ -22,7 +22,7 @@ class AllowMainlineForcePushes(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "AllowMainlineForcePushes",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "Rules applied to everyone including administrators",
27
27
  "Allow force pushes",
28
28
  lambda data: data["branch_protection_data"]["allow_force_pushes"]["enabled"],
@@ -23,7 +23,7 @@ class DismissStalePullRequestApprovals(ClassicEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "DismissStalePullRequestApprovals",
25
25
  True,
26
- "disabled",
26
+ "no",
27
27
  "Protect matching branches",
28
28
  "Require a pull request before merging -> Dismiss stale pull request approvals when new commits are pushed",
29
29
  _GetValue,
@@ -22,7 +22,7 @@ class DoNotAllowBypassSettings(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "DoNotAllowBypassSettings",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "Protect matching branches",
27
27
  "Do not allow bypassing the above settings",
28
28
  lambda data: data["branch_protection_data"]["enforce_admins"]["enabled"],
@@ -54,10 +54,10 @@ class EnsureStatusChecks(Requirement):
54
54
 
55
55
  # ----------------------------------------------------------------------
56
56
  @override
57
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
57
+ def GetDynamicArgDefinitions(self, argument_separator: str) -> dict[str, TypeDefinitionItemType]:
58
58
  """Get the definitions for the arguments to this requirement."""
59
59
  return {
60
- "disabled": (
60
+ f"no{argument_separator}{self.name}": (
61
61
  bool,
62
62
  typer.Option(
63
63
  default=False,
@@ -73,7 +73,7 @@ class EnsureStatusChecks(Requirement):
73
73
  query_data: dict[str, Any],
74
74
  requirement_args: dict[str, Any],
75
75
  ) -> Requirement.EvaluateImplResult:
76
- if requirement_args["disabled"]:
76
+ if requirement_args["no"]:
77
77
  return Requirement.EvaluateImplResult(
78
78
  EvaluateResult.DoesNotApply,
79
79
  "The status check requirement has been explicitly disabled.",
@@ -23,7 +23,7 @@ class RequireApprovalMostRecentPush(ClassicEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "RequireApprovalMostRecentPush",
25
25
  True,
26
- "disabled",
26
+ "no",
27
27
  "Protect matching branches",
28
28
  "Require a pull request before merging -> Require approval of the most recent reviewable push",
29
29
  _GetValue,
@@ -23,7 +23,7 @@ class RequireCodeOwnerReview(ClassicEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "RequireCodeOwnerReview",
25
25
  False,
26
- "enabled",
26
+ "yes",
27
27
  "Protect matching branches",
28
28
  "Require a pull request before merging -> Require review from Code Owners",
29
29
  _GetValue,
@@ -22,7 +22,7 @@ class RequireConversationResolution(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "RequireConversationResolution",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "Protect matching branches",
27
27
  "Require conversation resolution before merging",
28
28
  lambda data: data["branch_protection_data"]["required_conversation_resolution"]["enabled"],
@@ -22,7 +22,7 @@ class RequireLinearHistory(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "RequireLinearHistory",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "Protect matching branches",
27
27
  "Require linear history",
28
28
  lambda data: data["branch_protection_data"]["required_linear_history"]["enabled"],
@@ -22,7 +22,7 @@ class RequirePullRequests(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "RequirePullRequests",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "Protect matching branches",
27
27
  "Require a pull request before merging",
28
28
  lambda data: "required_pull_request_reviews" in data["branch_protection_data"],
@@ -22,7 +22,7 @@ class RequireSignedCommits(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "RequireSignedCommits",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "Protect matching branches",
27
27
  "Require signed commits",
28
28
  lambda data: data["branch_protection_data"]["required_signatures"]["enabled"],
@@ -22,7 +22,7 @@ class RequireStatusChecksToPass(ClassicEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "RequireStatusChecksToPass",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "Protect matching branches",
27
27
  "Require status checks to pass before merging",
28
28
  lambda data: "required_status_checks" in data["branch_protection_data"],
@@ -23,7 +23,7 @@ class RequireUpToDateBranches(ClassicEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "RequireUpToDateBranches",
25
25
  True,
26
- "disabled",
26
+ "no",
27
27
  "Protect matching branches",
28
28
  "Require status checks to pass before merging -> Require branches to be up to date before merging",
29
29
  _GetValue,
@@ -53,10 +53,10 @@ class Protected(Requirement):
53
53
 
54
54
  # ----------------------------------------------------------------------
55
55
  @override
56
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
56
+ def GetDynamicArgDefinitions(self, argument_separator: str) -> dict[str, TypeDefinitionItemType]:
57
57
  """Get the definitions for the arguments to this requirement."""
58
58
  return {
59
- "disabled": (
59
+ f"no{argument_separator}{self.name}": (
60
60
  bool,
61
61
  typer.Option(
62
62
  default=False,
@@ -78,7 +78,7 @@ class Protected(Requirement):
78
78
  if is_protected is None:
79
79
  return CreateIncompleteDataResult()
80
80
 
81
- if requirement_args["disabled"]:
81
+ if requirement_args["no"]:
82
82
  expected_value = False
83
83
  provide_rationale = False
84
84
  else:
@@ -60,10 +60,11 @@ class EnableRequirementImpl(Requirement):
60
60
 
61
61
  # ----------------------------------------------------------------------
62
62
  @override
63
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
63
+ def GetDynamicArgDefinitions(self, argument_separator: str) -> dict[str, TypeDefinitionItemType]:
64
64
  """Get the definitions for the arguments to this requirement."""
65
+ arg = f"no{argument_separator}{self.name}" if self.dynamic_arg_name == "no" else f"{self.name}"
65
66
  return {
66
- self.dynamic_arg_name: (
67
+ arg: (
67
68
  bool,
68
69
  typer.Option(
69
70
  False,
@@ -65,10 +65,10 @@ class ValueRequirementImpl(Requirement):
65
65
 
66
66
  # ----------------------------------------------------------------------
67
67
  @override
68
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
68
+ def GetDynamicArgDefinitions(self, argument_separator: str) -> dict[str, TypeDefinitionItemType]:
69
69
  """Get the definitions for the arguments to this requirement."""
70
70
  return {
71
- "value": (
71
+ f"{self.name}{argument_separator}value": (
72
72
  str,
73
73
  typer.Option(
74
74
  self.default_value,
@@ -16,7 +16,7 @@ class RequirePullRequests(EnableRulesetRequirementImpl):
16
16
  super().__init__(
17
17
  name="RequirePullRequestsRule",
18
18
  enabled_by_default=True,
19
- dynamic_arg_name="disabled",
19
+ dynamic_arg_name="no",
20
20
  github_ruleset_type="pull_request",
21
21
  github_ruleset_value="Require a pull request before merging",
22
22
  get_configuration_value_func=lambda rule: rule.get("type", "") == "pull_request",
@@ -16,7 +16,7 @@ class RequireSignedCommits(EnableRulesetRequirementImpl):
16
16
  super().__init__(
17
17
  name="RequireSignedCommitsRule",
18
18
  enabled_by_default=True,
19
- dynamic_arg_name="disabled",
19
+ dynamic_arg_name="no",
20
20
  github_ruleset_type="required_signatures",
21
21
  github_ruleset_value="Require signed commits",
22
22
  get_configuration_value_func=lambda rule: rule.get("type", "") == "required_signatures",
@@ -16,7 +16,7 @@ class RequireStatusChecks(EnableRulesetRequirementImpl):
16
16
  super().__init__(
17
17
  name="RequireStatusChecksRule",
18
18
  enabled_by_default=True,
19
- dynamic_arg_name="disabled",
19
+ dynamic_arg_name="no",
20
20
  github_ruleset_type="required_status_checks",
21
21
  github_ruleset_value="Require status checks to pass",
22
22
  get_configuration_value_func=lambda rule: rule.get("type", "") == "required_status_checks",
@@ -22,7 +22,7 @@ class AutoMerge(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "AutoMerge",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "Pull Requests",
28
28
  "Allow auto-merge",
@@ -22,7 +22,7 @@ class DeleteHeadBranches(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "DeleteHeadBranches",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "Pull Requests",
28
28
  "Automatically delete head branches",
@@ -23,7 +23,7 @@ class DependabotSecurityUpdates(StandardEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "DependabotSecurityUpdates",
25
25
  True,
26
- "disabled",
26
+ "no",
27
27
  "settings/security_analysis",
28
28
  "Dependabot",
29
29
  "Dependabot security updates",
@@ -51,10 +51,10 @@ class Description(Requirement):
51
51
 
52
52
  # ----------------------------------------------------------------------
53
53
  @override
54
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
54
+ def GetDynamicArgDefinitions(self, argument_separator: str) -> dict[str, TypeDefinitionItemType]:
55
55
  """Get the definitions for the arguments to this requirement."""
56
56
  return {
57
- "allow-empty": (
57
+ f"{self.name}{argument_separator}allow-empty": (
58
58
  bool,
59
59
  typer.Option(
60
60
  default=False,
@@ -22,7 +22,7 @@ class MergeCommit(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "MergeCommit",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "Pull Requests",
28
28
  "Allow merge commits",
@@ -52,10 +52,10 @@ class Private(Requirement):
52
52
 
53
53
  # ----------------------------------------------------------------------
54
54
  @override
55
- def GetDynamicArgDefinitions(self) -> dict[str, TypeDefinitionItemType]:
55
+ def GetDynamicArgDefinitions(self, _: str) -> dict[str, TypeDefinitionItemType]:
56
56
  """Get the definitions for the arguments to this requirement."""
57
57
  return {
58
- "enabled": (
58
+ f"{self.name}": (
59
59
  bool,
60
60
  typer.Option(
61
61
  default=False,
@@ -71,7 +71,7 @@ class Private(Requirement):
71
71
  query_data: dict[str, Any],
72
72
  requirement_args: dict[str, Any],
73
73
  ) -> Requirement.EvaluateImplResult:
74
- expect_private = requirement_args.get("enabled", False)
74
+ expect_private = requirement_args.get("yes", False)
75
75
  query_data["__expected_visibility"] = "private" if expect_private else "public"
76
76
 
77
77
  result = query_data["standard"].get("private", None)
@@ -22,7 +22,7 @@ class RebaseMergeCommit(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "RebaseMergeCommit",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "settings",
27
27
  "Pull Requests",
28
28
  "Allow rebase merging",
@@ -23,7 +23,7 @@ class SecretScanning(StandardEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "SecretScanning",
25
25
  True,
26
- "disabled",
26
+ "no",
27
27
  "settings/security_analysis",
28
28
  "Secret Protection",
29
29
  "Secret protection",
@@ -23,7 +23,7 @@ class SecretScanningPushProtection(StandardEnableRequirementImpl):
23
23
  super().__init__(
24
24
  "SecretScanningPushProtection",
25
25
  True,
26
- "disabled",
26
+ "no",
27
27
  "settings/security_analysis",
28
28
  "Secret Protection",
29
29
  "Push protection",
@@ -22,7 +22,7 @@ class SquashCommitMerge(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "SquashCommitMerge",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "settings",
27
27
  "Pull Requests",
28
28
  "Allow squash merging",
@@ -22,7 +22,7 @@ class SuggestUpdatingPullRequestBranches(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "SuggestUpdatingPullRequestBranches",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "settings",
27
27
  "Pull Requests",
28
28
  "Always suggest updating pull request branches",
@@ -22,7 +22,7 @@ class SupportDiscussions(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "SupportDiscussions",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "settings",
27
27
  "Features",
28
28
  "Discussions",
@@ -22,7 +22,7 @@ class SupportIssues(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "SupportIssues",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "Features",
28
28
  "Issues",
@@ -22,7 +22,7 @@ class SupportProjects(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "SupportProjects",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "Features",
28
28
  "Projects",
@@ -22,7 +22,7 @@ class SupportWikis(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "SupportWikis",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "Features",
28
28
  "Wikis",
@@ -22,7 +22,7 @@ class TemplateRepository(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "TemplateRepository",
24
24
  False,
25
- "enabled",
25
+ "yes",
26
26
  "settings",
27
27
  "General",
28
28
  "Template repository",
@@ -22,7 +22,7 @@ class WebCommitSignoff(StandardEnableRequirementImpl):
22
22
  super().__init__(
23
23
  "WebCommitSignoff",
24
24
  True,
25
- "disabled",
25
+ "no",
26
26
  "settings",
27
27
  "General",
28
28
  "Require contributors to sign off on web-based commits",