RepoAuditor 0.2.73__tar.gz → 0.2.75__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.73 → repoauditor-0.2.75}/PKG-INFO +1 -1
  2. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Impl/ExistsRequirementImpl.py +2 -2
  3. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +10 -10
  4. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +1 -1
  5. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +5 -5
  6. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +12 -9
  7. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRulesetRequirementImpl.py +4 -2
  8. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +4 -4
  9. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequirePullRequests.py +1 -1
  10. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSignedCommits.py +1 -1
  11. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireStatusChecks.py +1 -1
  12. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +14 -20
  13. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DefaultBranch.py +1 -1
  14. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Description.py +1 -1
  15. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardValueRequirementImpl.py +3 -3
  16. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Private.py +4 -5
  17. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Requirement.py +6 -0
  18. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/__init__.py +1 -1
  19. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +8 -4
  20. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +2 -2
  21. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +4 -2
  22. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +4 -2
  23. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +8 -4
  24. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +8 -4
  25. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +2 -1
  26. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +2 -2
  27. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/__snapshots__/GitHubEnterprise_EndToEndTest.ambr +42 -43
  28. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +66 -67
  29. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Requirement_UnitTest.py +3 -3
  30. {repoauditor-0.2.73 → repoauditor-0.2.75}/.copier-answers.yml +0 -0
  31. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/CODEOWNERS +0 -0
  32. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  34. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  35. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  36. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/actions/release_impl/action.yml +0 -0
  37. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/pull_request_template.md +0 -0
  38. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/release_sources.yaml +0 -0
  39. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/workflows/CICD.yml +0 -0
  40. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/workflows/CICD_impl.yml +0 -0
  41. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/workflows/EndToEnd.yml +0 -0
  42. {repoauditor-0.2.73 → repoauditor-0.2.75}/.github/workflows/codeql.yml +0 -0
  43. {repoauditor-0.2.73 → repoauditor-0.2.75}/.gitignore +0 -0
  44. {repoauditor-0.2.73 → repoauditor-0.2.75}/.pre-commit-config.yaml +0 -0
  45. {repoauditor-0.2.73 → repoauditor-0.2.75}/.python-version +0 -0
  46. {repoauditor-0.2.73 → repoauditor-0.2.75}/CODE_OF_CONDUCT.md +0 -0
  47. {repoauditor-0.2.73 → repoauditor-0.2.75}/CONTRIBUTING.md +0 -0
  48. {repoauditor-0.2.73 → repoauditor-0.2.75}/DEVELOPMENT.md +0 -0
  49. {repoauditor-0.2.73 → repoauditor-0.2.75}/GOVERNANCE.md +0 -0
  50. {repoauditor-0.2.73 → repoauditor-0.2.75}/LICENSE +0 -0
  51. {repoauditor-0.2.73 → repoauditor-0.2.75}/MAINTAINERS.md +0 -0
  52. {repoauditor-0.2.73 → repoauditor-0.2.75}/README.md +0 -0
  53. {repoauditor-0.2.73 → repoauditor-0.2.75}/SECURITY.md +0 -0
  54. {repoauditor-0.2.73 → repoauditor-0.2.75}/default_config.yaml +0 -0
  55. {repoauditor-0.2.73 → repoauditor-0.2.75}/minisign_key.pub +0 -0
  56. {repoauditor-0.2.73 → repoauditor-0.2.75}/pyproject.toml +0 -0
  57. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/AutoGitSemVer.yaml +0 -0
  58. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/CommandLineProcessor.py +0 -0
  59. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Display.py +0 -0
  60. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/EntryPoint.py +0 -0
  61. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/ExecuteModules.py +0 -0
  62. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
  63. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Impl/__init__.py +0 -0
  64. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Module.py +0 -0
  65. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugin.py +0 -0
  66. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/CommunityStandardsQuery.py +4 -4
  67. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Impl/__init__.py +0 -0
  68. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Module.py +0 -0
  69. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOfConduct.py +0 -0
  70. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOwners.py +0 -0
  71. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/Contributing.py +0 -0
  72. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/IssueTemplates.py +0 -0
  73. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/LicenseFile.py +0 -0
  74. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/PullRequestTemplates.py +0 -0
  75. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/ReadMe.py +0 -0
  76. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/SecurityPolicy.py +0 -0
  77. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/__init__.py +0 -0
  78. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandards/__init__.py +0 -0
  79. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/CommunityStandardsPlugin.py +0 -0
  80. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
  81. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowMainlineForcePushes.py +0 -0
  82. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
  83. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
  84. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
  85. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
  86. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
  87. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
  88. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
  89. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
  90. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
  91. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
  92. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
  93. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
  94. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
  95. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
  96. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
  97. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/Protected.py +0 -0
  98. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/__init__.py +0 -0
  99. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
  100. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
  101. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
  102. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/RulesetQuery.py +2 -2
  103. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/__init__.py +0 -0
  104. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/AutoMerge.py +0 -0
  105. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DeleteHeadBranches.py +0 -0
  106. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DependabotSecurityUpdates.py +0 -0
  107. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
  108. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/__init__.py +0 -0
  109. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/License.py +0 -0
  110. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommit.py +0 -0
  111. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommitMessage.py +0 -0
  112. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/RebaseMergeCommit.py +0 -0
  113. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanning.py +0 -0
  114. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanningPushProtection.py +0 -0
  115. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashCommitMerge.py +0 -0
  116. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashMergeCommitMessage.py +0 -0
  117. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
  118. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportDiscussions.py +0 -0
  119. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportIssues.py +0 -0
  120. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportProjects.py +0 -0
  121. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportWikis.py +0 -0
  122. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/TemplateRepository.py +0 -0
  123. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/WebCommitSignoff.py +0 -0
  124. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/__init__.py +0 -0
  125. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
  126. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
  127. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
  128. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
  129. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Plugins/__init__.py +0 -0
  130. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/Query.py +0 -0
  131. {repoauditor-0.2.73 → repoauditor-0.2.75}/src/RepoAuditor/py.typed +0 -0
  132. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/CommandLineProcessor_UnitTest.py +0 -0
  133. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/EntryPoint_UnitTest.py +0 -0
  134. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/ExecuteModules_UnitTest.py +0 -0
  135. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Module_UnitTest.py +0 -0
  136. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugin_UnitTest.py +0 -0
  137. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/CommunityStandards/CommunityStandardsQuery_UnitTest.py +0 -0
  138. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/CommunityStandards/ExistsRequirementImpl_UnitTest.py +0 -0
  139. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/CommunityStandards/GitHubCommunityStandards_UnitTest.py +0 -0
  140. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/CommunityStandards_EndToEndTest.py +0 -0
  141. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubEnterprise_EndToEndTest.py +0 -0
  142. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
  143. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
  144. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -0
  145. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +1 -1
  146. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
  147. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -0
  148. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +0 -0
  149. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
  150. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -0
  151. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
  152. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/EnableRulesetRequirementImpl_UnitTest.py +0 -0
  153. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
  154. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
  155. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/RulesetRequirements_UnitTest.py +0 -0
  156. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/RulsesetQuery_UnitTest.py +0 -0
  157. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -0
  158. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
  159. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHubModule/fixtures.py +0 -0
  160. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/GitHub_EndToEndTest.py +0 -0
  161. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/__snapshots__/CommunityStandards_EndToEndTest.ambr +0 -0
  162. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/conftest.py +0 -0
  163. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Plugins/utilities.py +0 -0
  164. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/Query_UnitTest.py +0 -0
  165. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/__init__.py +0 -0
  166. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
  167. {repoauditor-0.2.73 → repoauditor-0.2.75}/tests/conftest.py +0 -0
  168. {repoauditor-0.2.73 → repoauditor-0.2.75}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RepoAuditor
3
- Version: 0.2.73
3
+ Version: 0.2.75
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
@@ -80,8 +80,8 @@ class ExistsRequirementImpl(Requirement):
80
80
  query_data: dict[str, Any],
81
81
  requirement_args: dict[str, Any],
82
82
  ) -> Requirement.EvaluateImplResult:
83
- # Check if `dynamic_arg_name` is `not unrequired`.
84
- if not requirement_args[self.dynamic_arg_name]:
83
+ # Check if dynamic argument is `not unrequired`.
84
+ if not requirement_args.get(self.dynamic_arg_name, False):
85
85
  for location in self.possible_locations:
86
86
  # Get full file path in temporary repo directory and check if it exists
87
87
  # This checks both upper case and lower case variants
@@ -115,20 +115,20 @@ class ClassicBranchProtectionQuery(Query):
115
115
  "ClassicBranchProtectionQuery",
116
116
  ExecutionStyle.Parallel,
117
117
  [
118
- RequirePullRequests(),
119
- RequireApprovals(),
118
+ AllowDeletions(),
119
+ AllowMainlineForcePushes(),
120
120
  DismissStalePullRequestApprovals(),
121
- RequireCodeOwnerReview(),
122
- RequireApprovalMostRecentPush(),
123
- RequireStatusChecksToPass(),
124
- RequireUpToDateBranches(),
121
+ DoNotAllowBypassSettings(),
125
122
  EnsureStatusChecks(),
123
+ RequireApprovalMostRecentPush(),
124
+ RequireApprovals(),
125
+ RequireCodeOwnerReview(),
126
126
  RequireConversationResolution(),
127
- RequireSignedCommits(),
128
127
  RequireLinearHistory(),
129
- DoNotAllowBypassSettings(),
130
- AllowDeletions(),
131
- AllowMainlineForcePushes(),
128
+ RequirePullRequests(),
129
+ RequireSignedCommits(),
130
+ RequireStatusChecksToPass(),
131
+ RequireUpToDateBranches(),
132
132
  ],
133
133
  )
134
134
 
@@ -24,7 +24,7 @@ class EnsureStatusChecks(Requirement):
24
24
  def __init__(self) -> None:
25
25
  super().__init__(
26
26
  "EnsureStatusChecks",
27
- "Ensure that status checks have been enabled for the branch.",
27
+ "Ensure that status checks have been enabled for the '{branch}' branch.",
28
28
  ExecutionStyle.Parallel,
29
29
  textwrap.dedent(
30
30
  """\
@@ -40,11 +40,11 @@ class ClassicValueRequirementImpl(ValueRequirementImpl):
40
40
 
41
41
  resolution = textwrap.dedent(
42
42
  f"""\
43
- 1) Visit '{{session.github_url}}/settings/branches'
44
- 2) Locate the 'Branch protection rules' section
45
- 3) Click the 'Edit' button next to the branch '{{branch}}'
46
- 4) Locate the '{github_settings_section}' section
47
- 5) Ensure that {github_settings_value_display} is {{__expected_value}}
43
+ 1) Visit '{{session.github_url}}/settings/branches'.
44
+ 2) Locate the 'Branch protection rules' section.
45
+ 3) Click the 'Edit' button next to the branch '{{branch}}'.
46
+ 4) Locate the '{github_settings_section}' section.
47
+ 5) Ensure that {github_settings_value_display} is '{{__expected_value}}'.
48
48
  """,
49
49
  )
50
50
 
@@ -44,7 +44,7 @@ class EnableRequirementImpl(Requirement):
44
44
 
45
45
  super().__init__(
46
46
  name,
47
- f"Validates that {subject} is set to the expected value.",
47
+ f"Validates that {subject} is set to {{__expected_value}}.",
48
48
  ExecutionStyle.Parallel,
49
49
  resolution,
50
50
  rationale,
@@ -79,6 +79,17 @@ class EnableRequirementImpl(Requirement):
79
79
  query_data: dict[str, Any],
80
80
  requirement_args: dict[str, Any],
81
81
  ) -> Requirement.EvaluateImplResult:
82
+ expected_value = self.enabled_by_default
83
+
84
+ # The value of the dynamic arg doesn't matter as much as whether it was provided
85
+ if requirement_args.get(self.dynamic_arg_name, False):
86
+ expected_value = not expected_value
87
+ provide_rationale = False
88
+ else:
89
+ provide_rationale = True
90
+
91
+ query_data["__expected_value"] = expected_value
92
+
82
93
  result = self.get_configuration_value_func(query_data)
83
94
  if result is None:
84
95
  if query_data["session"].is_enterprise:
@@ -95,14 +106,6 @@ class EnableRequirementImpl(Requirement):
95
106
 
96
107
  return Requirement.EvaluateImplResult(EvaluateResult.DoesNotApply, None)
97
108
 
98
- expected_value = self.enabled_by_default
99
-
100
- if requirement_args[self.dynamic_arg_name]:
101
- expected_value = not expected_value
102
- provide_rationale = False
103
- else:
104
- provide_rationale = True
105
-
106
109
  if result != expected_value:
107
110
  query_data["__checked_desc"] = self.unset_set_terminology[int(expected_value)]
108
111
 
@@ -61,13 +61,15 @@ class EnableRulesetRequirementImpl(EnableRequirementImpl):
61
61
  ) -> Requirement.EvaluateImplResult:
62
62
  expected_rule_enabled = self.enabled_by_default
63
63
 
64
- if requirement_args[self.dynamic_arg_name]:
64
+ # The value of the dynamic arg doesn't matter as much as whether it was provided
65
+ if requirement_args.get(self.dynamic_arg_name, False):
65
66
  expected_rule_enabled = not expected_rule_enabled
66
67
  provide_rationale = False
67
68
  else:
68
69
  provide_rationale = True
69
70
 
70
- query_data["__expected_value"] = "Enable" if expected_rule_enabled else "Disable"
71
+ query_data["__expected_value"] = expected_rule_enabled
72
+ query_data["__enabled_str"] = "Enable" if expected_rule_enabled else "Disable"
71
73
 
72
74
  # Get the rules for the specified branch
73
75
  rules = query_data.get("rules", [])
@@ -51,7 +51,7 @@ class ValueRequirementImpl(Requirement):
51
51
 
52
52
  super().__init__(
53
53
  name,
54
- f"Validates that {subject} is set to the expected value.",
54
+ f"Validates that {subject} is set to '{{__expected_value}}'.",
55
55
  ExecutionStyle.Parallel,
56
56
  resolution,
57
57
  rationale,
@@ -84,6 +84,9 @@ class ValueRequirementImpl(Requirement):
84
84
  query_data: dict[str, Any],
85
85
  requirement_args: dict[str, Any],
86
86
  ) -> Requirement.EvaluateImplResult:
87
+ expected_value = requirement_args.get("value", self.default_value)
88
+ query_data["__expected_value"] = f"{expected_value}"
89
+
87
90
  result = self.get_configuration_value_func(query_data)
88
91
  if result is None:
89
92
  if self.missing_value_is_warning:
@@ -91,7 +94,6 @@ class ValueRequirementImpl(Requirement):
91
94
 
92
95
  return Requirement.EvaluateImplResult(EvaluateResult.DoesNotApply, None)
93
96
 
94
- expected_value = requirement_args["value"]
95
97
  is_default_expected_value = expected_value == self.default_value
96
98
 
97
99
  if isinstance(result, DoesNotApplyResult):
@@ -106,8 +108,6 @@ class ValueRequirementImpl(Requirement):
106
108
  result = str(result)
107
109
 
108
110
  if result != expected_value:
109
- query_data["__expected_value"] = f"'{expected_value}'"
110
-
111
111
  return Requirement.EvaluateImplResult(
112
112
  EvaluateResult.Error,
113
113
  f"{self.github_value} must be set to '{expected_value}' (it is currently set to '{result}').",
@@ -20,6 +20,6 @@ class RequirePullRequests(EnableRulesetRequirementImpl):
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",
23
- resolution="{__expected_value} pull request rule in repository rulesets",
23
+ resolution="{__enabled_str} pull request rule in repository rulesets",
24
24
  rationale="Pull request reviews help maintain code quality and collaboration",
25
25
  )
@@ -20,6 +20,6 @@ class RequireSignedCommits(EnableRulesetRequirementImpl):
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",
23
- resolution="Enable commit signing requirement in repository rulesets",
23
+ resolution="{__enabled_str} commit signing requirement in repository rulesets",
24
24
  rationale="Signed commits ensure commit authenticity",
25
25
  )
@@ -20,6 +20,6 @@ class RequireStatusChecks(EnableRulesetRequirementImpl):
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",
23
- resolution="Configure required status checks in repository rulesets",
23
+ resolution="{__enabled_str} required status checks in repository rulesets",
24
24
  rationale="Status checks ensure code quality and compatibility",
25
25
  )
@@ -212,33 +212,27 @@ class StandardQuery(Query):
212
212
  "StandardQuery",
213
213
  ExecutionStyle.Parallel,
214
214
  [
215
- # metadata
215
+ AutoMerge(),
216
+ DefaultBranch(),
217
+ DeleteHeadBranches(),
216
218
  Description(),
219
+ DependabotSecurityUpdates(),
217
220
  License(),
218
- # settings page
219
- TemplateRepository(),
220
- WebCommitSignoff(),
221
- DefaultBranch(),
222
- # settings page (Features)
223
- SupportWikis(),
224
- SupportIssues(),
225
- SupportDiscussions(),
226
- SupportProjects(),
227
- # settings page (Pull Requests)
228
221
  MergeCommit(),
229
222
  MergeCommitMessage(),
230
- SquashCommitMerge(),
231
- SquashMergeCommitMessage(),
232
- RebaseMergeCommit(),
233
- SuggestUpdatingPullRequestBranches(),
234
- AutoMerge(),
235
- DeleteHeadBranches(),
236
- # settings page (Danger Zone)
237
223
  Private(),
238
- # settings/security_analysis
239
- DependabotSecurityUpdates(),
224
+ RebaseMergeCommit(),
240
225
  SecretScanning(),
241
226
  SecretScanningPushProtection(),
227
+ SquashCommitMerge(),
228
+ SquashMergeCommitMessage(),
229
+ SuggestUpdatingPullRequestBranches(),
230
+ SupportDiscussions(),
231
+ SupportIssues(),
232
+ SupportProjects(),
233
+ SupportWikis(),
234
+ TemplateRepository(),
235
+ WebCommitSignoff(),
242
236
  ],
243
237
  )
244
238
 
@@ -24,7 +24,7 @@ class DefaultBranch(StandardValueRequirementImpl):
24
24
  "main",
25
25
  "settings",
26
26
  "Default Branch",
27
- None,
27
+ "Default Branch",
28
28
  lambda data: data["standard"].get("default_branch", None),
29
29
  textwrap.dedent(
30
30
  """\
@@ -24,7 +24,7 @@ class Description(Requirement):
24
24
  def __init__(self) -> None:
25
25
  super().__init__(
26
26
  "Description",
27
- "Validates a repository's description.",
27
+ "Validates if the repository has a description.",
28
28
  ExecutionStyle.Parallel,
29
29
  textwrap.dedent(
30
30
  """\
@@ -44,9 +44,9 @@ class StandardValueRequirementImpl(
44
44
 
45
45
  resolution = textwrap.dedent(
46
46
  f"""\
47
- 1) Visit '{{session.github_url}}/{github_settings_url_suffix}'
48
- 2) Locate the '{github_settings_section}' section
49
- 3) Ensure that {github_settings_value_display} is set to {{__expected_value}}
47
+ 1) Visit '{{session.github_url}}/{github_settings_url_suffix}'.
48
+ 2) Locate the '{github_settings_section}' section.
49
+ 3) Ensure that {github_settings_value_display} is set to '{{__expected_value}}'.
50
50
  """,
51
51
  )
52
52
 
@@ -25,7 +25,7 @@ class Private(Requirement):
25
25
  def __init__(self) -> None:
26
26
  super().__init__(
27
27
  "Private",
28
- "Validates that the repository is set to the expected visibility.",
28
+ "Validates that the repository's visibility is set to '{__expected_visibility}'.",
29
29
  ExecutionStyle.Parallel,
30
30
  textwrap.dedent(
31
31
  """\
@@ -71,16 +71,15 @@ 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)
75
+ query_data["__expected_visibility"] = "private" if expect_private else "public"
76
+
74
77
  result = query_data["standard"].get("private", None)
75
78
 
76
79
  if result is None:
77
80
  return CreateIncompleteDataResult()
78
81
 
79
- expect_private = requirement_args["enabled"]
80
-
81
82
  if result != expect_private:
82
- query_data["__expected_visibility"] = "private" if expect_private else "public"
83
-
84
83
  return Requirement.EvaluateImplResult(
85
84
  EvaluateResult.Error,
86
85
  f"The repository's visibility must be {query_data['__expected_visibility']}.",
@@ -87,6 +87,9 @@ class Requirement(ABC):
87
87
  If `requires_explicit_include` is True, the requirement must be explicitly included on the command line.
88
88
  """
89
89
  self.name = name
90
+ # Use description template so we can update this description for each requirement
91
+ self.description_template = description
92
+ # Use the description as is as backup
90
93
  self.description = description
91
94
  self.style = style
92
95
 
@@ -112,6 +115,9 @@ class Requirement(ABC):
112
115
  """Evaluate the requirements given the query data and specific arguments."""
113
116
  result_info = self._EvaluateImpl(query_data, requirement_args)
114
117
 
118
+ # Fill in templates in description string
119
+ self.description = self.description_template.format(**query_data)
120
+
115
121
  if result_info.result == EvaluateResult.Error:
116
122
  return Requirement.EvaluateInfo(
117
123
  result_info.result,
@@ -2,4 +2,4 @@ APP_NAME = "RepoAuditor"
2
2
 
3
3
  # Note that the default value below will be used until the value
4
4
  # here is explicitly updated by the Continuous Integration system.
5
- __version__ = "0.2.73"
5
+ __version__ = "0.2.75"
@@ -37,28 +37,32 @@ class TestDependabotSecurityUpdates:
37
37
  def test_security_and_analysis_missing(self, requirement, query_data):
38
38
  """Test if `security_and_analysis` is missing"""
39
39
  query_data["standard"] = {}
40
- result = requirement.Evaluate(query_data, requirement_args={})
40
+ requirement_args = {}
41
+ result = requirement.Evaluate(query_data, requirement_args)
41
42
  assert result.result == EvaluateResult.Warning
42
43
  assert "Incomplete data was encountered" in result.context
43
44
 
44
45
  def test_dependabot_security_updates_missing(self, requirement, query_data):
45
46
  """Test if `dependabot_security_updates` is missing"""
46
47
  query_data["standard"]["security_and_analysis"] = {}
47
- result = requirement.Evaluate(query_data, requirement_args={})
48
+ requirement_args = {}
49
+ result = requirement.Evaluate(query_data, requirement_args)
48
50
  assert result.result == EvaluateResult.Warning
49
51
  assert "Incomplete data was encountered" in result.context
50
52
 
51
53
  def test_status_missing(self, requirement, query_data):
52
54
  """Test if `status` is missing"""
53
55
  query_data["standard"]["security_and_analysis"]["dependabot_security_updates"] = {}
54
- result = requirement.Evaluate(query_data, requirement_args={})
56
+ requirement_args = {}
57
+ result = requirement.Evaluate(query_data, requirement_args)
55
58
  assert result.result == EvaluateResult.Warning
56
59
  assert "Incomplete data was encountered" in result.context
57
60
 
58
61
  def test_status_none(self, requirement, query_data):
59
62
  """Test if `status` is None"""
60
63
  query_data["standard"]["security_and_analysis"]["dependabot_security_updates"]["status"] = None
61
- result = requirement.Evaluate(query_data, requirement_args={})
64
+ requirement_args = {}
65
+ result = requirement.Evaluate(query_data, requirement_args)
62
66
  assert result.result == EvaluateResult.Warning
63
67
  assert "Incomplete data was encountered" in result.context
64
68
 
@@ -49,7 +49,7 @@ class TestLicense:
49
49
  query_data["standard"]["license"] = None
50
50
  result = requirement.Evaluate(
51
51
  query_data,
52
- requirement_args={"value": requirement.default_value},
52
+ requirement_args={},
53
53
  )
54
54
  assert result.result == EvaluateResult.Error
55
55
  assert "'License' must be set to 'MIT License' (it is currently set to '')." in result.context
@@ -58,6 +58,6 @@ class TestLicense:
58
58
  """Test successful"""
59
59
  result = requirement.Evaluate(
60
60
  query_data,
61
- requirement_args={"value": requirement.default_value},
61
+ requirement_args={},
62
62
  )
63
63
  assert result.result == EvaluateResult.Success
@@ -32,14 +32,16 @@ class TestMergeCommitMessage:
32
32
  def test_allow_merge_commit_missing(self, requirement, query_data):
33
33
  """Test if `allow_merge_commit` is missing"""
34
34
  query_data["standard"] = {}
35
- result = requirement.Evaluate(query_data, requirement_args={})
35
+ requirement_args = {}
36
+ result = requirement.Evaluate(query_data, requirement_args)
36
37
  assert result.result == EvaluateResult.Warning
37
38
  assert "Incomplete data was encountered" in result.context
38
39
 
39
40
  def test_allow_merge_commit_none(self, requirement, query_data):
40
41
  """Test if `allow_merge_commit` is None"""
41
42
  query_data["standard"]["allow_merge_commit"] = None
42
- result = requirement.Evaluate(query_data, requirement_args={})
43
+ requirement_args = {}
44
+ result = requirement.Evaluate(query_data, requirement_args)
43
45
  assert result.result == EvaluateResult.Warning
44
46
  assert "Incomplete data was encountered" in result.context
45
47
 
@@ -31,14 +31,16 @@ class TestPrivate:
31
31
  def test_private_missing(self, requirement, query_data):
32
32
  """Test if `private` is missing"""
33
33
  query_data["standard"] = {}
34
- result = requirement.Evaluate(query_data, requirement_args={})
34
+ requirement_args = {}
35
+ result = requirement.Evaluate(query_data, requirement_args)
35
36
  assert result.result == EvaluateResult.Warning
36
37
  assert "Incomplete data was encountered" in result.context
37
38
 
38
39
  def test_private_none(self, requirement, query_data):
39
40
  """Test if `private` is None"""
40
41
  query_data["standard"]["private"] = None
41
- result = requirement.Evaluate(query_data, requirement_args={})
42
+ requirement_args = {}
43
+ result = requirement.Evaluate(query_data, requirement_args)
42
44
  assert result.result == EvaluateResult.Warning
43
45
  assert "Incomplete data was encountered" in result.context
44
46
 
@@ -37,28 +37,32 @@ class TestSecretScanningPushProtection:
37
37
  def test_security_and_analysis_missing(self, requirement, query_data):
38
38
  """Test if `security_and_analysis` is missing"""
39
39
  query_data["standard"] = {}
40
- result = requirement.Evaluate(query_data, requirement_args={})
40
+ requirement_args = {}
41
+ result = requirement.Evaluate(query_data, requirement_args)
41
42
  assert result.result == EvaluateResult.Warning
42
43
  assert "Incomplete data was encountered" in result.context
43
44
 
44
45
  def test_secret_scanning_push_protection_missing(self, requirement, query_data):
45
46
  """Test if `secret_scanning_push_protection` is missing"""
46
47
  query_data["standard"]["security_and_analysis"] = {}
47
- result = requirement.Evaluate(query_data, requirement_args={})
48
+ requirement_args = {}
49
+ result = requirement.Evaluate(query_data, requirement_args)
48
50
  assert result.result == EvaluateResult.Warning
49
51
  assert "Incomplete data was encountered" in result.context
50
52
 
51
53
  def test_status_missing(self, requirement, query_data):
52
54
  """Test if `status` is missing"""
53
55
  query_data["standard"]["security_and_analysis"]["secret_scanning_push_protection"] = {}
54
- result = requirement.Evaluate(query_data, requirement_args={})
56
+ requirement_args = {}
57
+ result = requirement.Evaluate(query_data, requirement_args)
55
58
  assert result.result == EvaluateResult.Warning
56
59
  assert "Incomplete data was encountered" in result.context
57
60
 
58
61
  def test_status_none(self, requirement, query_data):
59
62
  """Test if `status` is None"""
60
63
  query_data["standard"]["security_and_analysis"]["secret_scanning_push_protection"]["status"] = None
61
- result = requirement.Evaluate(query_data, requirement_args={})
64
+ requirement_args = {}
65
+ result = requirement.Evaluate(query_data, requirement_args)
62
66
  assert result.result == EvaluateResult.Warning
63
67
  assert "Incomplete data was encountered" in result.context
64
68
 
@@ -35,28 +35,32 @@ class TestSecretScanning:
35
35
  def test_security_and_analysis_missing(self, requirement, query_data):
36
36
  # Test if `security_and_analysis` is missing
37
37
  query_data["standard"] = {}
38
- result = requirement.Evaluate(query_data, requirement_args={})
38
+ requirement_args = {}
39
+ result = requirement.Evaluate(query_data, requirement_args)
39
40
  assert result.result == EvaluateResult.Warning
40
41
  assert "Incomplete data was encountered" in result.context
41
42
 
42
43
  def test_secret_scanning_missing(self, requirement, query_data):
43
44
  """Test if `secret_scanning` is missing"""
44
45
  query_data["standard"]["security_and_analysis"] = {}
45
- result = requirement.Evaluate(query_data, requirement_args={})
46
+ requirement_args = {}
47
+ result = requirement.Evaluate(query_data, requirement_args)
46
48
  assert result.result == EvaluateResult.Warning
47
49
  assert "Incomplete data was encountered" in result.context
48
50
 
49
51
  def test_status_missing(self, requirement, query_data):
50
52
  """Test if `status` is missing"""
51
53
  query_data["standard"]["security_and_analysis"]["secret_scanning"] = {}
52
- result = requirement.Evaluate(query_data, requirement_args={})
54
+ requirement_args = {}
55
+ result = requirement.Evaluate(query_data, requirement_args)
53
56
  assert result.result == EvaluateResult.Warning
54
57
  assert "Incomplete data was encountered" in result.context
55
58
 
56
59
  def test_status_none(self, requirement, query_data):
57
60
  """Test if `status` is None"""
58
61
  query_data["standard"]["security_and_analysis"]["secret_scanning"] = {"status": None}
59
- result = requirement.Evaluate(query_data, requirement_args={})
62
+ requirement_args = {}
63
+ result = requirement.Evaluate(query_data, requirement_args)
60
64
  assert result.result == EvaluateResult.Warning
61
65
  assert "Incomplete data was encountered" in result.context
62
66
 
@@ -34,7 +34,8 @@ class TestSquashMergeCommitMessage:
34
34
  def test_allow_merge_commit_missing(self, requirement, query_data):
35
35
  """Test if `allow_merge_commit` is missing"""
36
36
  query_data["standard"] = {}
37
- result = requirement.Evaluate(query_data, requirement_args={})
37
+ requirement_args = {}
38
+ result = requirement.Evaluate(query_data, requirement_args)
38
39
  assert result.result == EvaluateResult.Warning
39
40
  assert "Incomplete data was encountered" in result.context
40
41
 
@@ -42,7 +42,7 @@ class TestValueRequirementImpl:
42
42
  def test_ResultIsNone(self, requirement):
43
43
  """Test pathway where result value is None."""
44
44
  query_data = {"result": None}
45
- requirement_args = {}
45
+ requirement_args = {"value": 0}
46
46
  result = requirement.Evaluate(query_data, requirement_args)
47
47
  assert result.result == EvaluateResult.Warning
48
48
  assert "Incomplete data" in result.context
@@ -84,7 +84,7 @@ class TestValueRequirementImpl:
84
84
  )
85
85
 
86
86
  query_data = {"result": None}
87
- requirement_args = {}
87
+ requirement_args = {"value": 0}
88
88
  result = requirement.Evaluate(query_data, requirement_args)
89
89
  assert result.result == EvaluateResult.DoesNotApply
90
90
  assert result.context is None