RepoAuditor 0.2.39__tar.gz → 0.2.40__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 (167) hide show
  1. {repoauditor-0.2.39 → repoauditor-0.2.40}/PKG-INFO +1 -1
  2. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/ExecuteModules.py +10 -5
  3. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Module.py +20 -4
  4. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Query.py +5 -4
  5. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Requirement.py +10 -1
  6. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/__init__.py +1 -1
  7. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/ExecuteModules_UnitTest.py +4 -3
  8. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Module_UnitTest.py +14 -1
  9. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubRulesets/EnableRulesetRequirementImpl_UnitTest.py +0 -1
  10. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +1583 -1583
  11. {repoauditor-0.2.39 → repoauditor-0.2.40}/.copier-answers.yml +0 -0
  12. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/CODEOWNERS +0 -0
  13. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  14. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  15. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  16. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  17. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/actions/release_impl/action.yml +0 -0
  18. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/pull_request_template.md +0 -0
  19. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/release_sources.yaml +0 -0
  20. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/workflows/CICD.yml +0 -0
  21. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/workflows/CICD_impl.yml +0 -0
  22. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/workflows/EndToEnd.yml +0 -0
  23. {repoauditor-0.2.39 → repoauditor-0.2.40}/.github/workflows/codeql.yml +0 -0
  24. {repoauditor-0.2.39 → repoauditor-0.2.40}/.gitignore +0 -0
  25. {repoauditor-0.2.39 → repoauditor-0.2.40}/.pre-commit-config.yaml +0 -0
  26. {repoauditor-0.2.39 → repoauditor-0.2.40}/.python-version +0 -0
  27. {repoauditor-0.2.39 → repoauditor-0.2.40}/CODE_OF_CONDUCT.md +0 -0
  28. {repoauditor-0.2.39 → repoauditor-0.2.40}/CONTRIBUTING.md +0 -0
  29. {repoauditor-0.2.39 → repoauditor-0.2.40}/DEVELOPMENT.md +0 -0
  30. {repoauditor-0.2.39 → repoauditor-0.2.40}/GOVERNANCE.md +0 -0
  31. {repoauditor-0.2.39 → repoauditor-0.2.40}/LICENSE +0 -0
  32. {repoauditor-0.2.39 → repoauditor-0.2.40}/MAINTAINERS.md +0 -0
  33. {repoauditor-0.2.39 → repoauditor-0.2.40}/README.md +0 -0
  34. {repoauditor-0.2.39 → repoauditor-0.2.40}/SECURITY.md +0 -0
  35. {repoauditor-0.2.39 → repoauditor-0.2.40}/minisign_key.pub +0 -0
  36. {repoauditor-0.2.39 → repoauditor-0.2.40}/pyproject.toml +0 -0
  37. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/AutoGitSemVer.yaml +0 -0
  38. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/CommandLineProcessor.py +0 -0
  39. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Display.py +0 -0
  40. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/EntryPoint.py +0 -0
  41. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
  42. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Impl/__init__.py +0 -0
  43. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugin.py +0 -0
  44. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
  45. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
  46. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowForcePushes.py +0 -0
  47. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
  48. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
  49. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
  50. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
  51. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
  52. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
  53. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
  54. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
  55. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
  56. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
  57. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
  58. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
  59. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
  60. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
  61. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
  62. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
  63. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
  64. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/Protected.py +0 -0
  65. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/__init__.py +0 -0
  66. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
  67. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +0 -0
  68. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +0 -0
  69. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
  70. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
  71. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
  72. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/AutoMerge.py +0 -0
  73. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DefaultBranch.py +0 -0
  74. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DeleteHeadBranches.py +0 -0
  75. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DependabotSecurityUpdates.py +0 -0
  76. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Description.py +0 -0
  77. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
  78. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardValueRequirementImpl.py +0 -0
  79. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/__init__.py +0 -0
  80. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/License.py +0 -0
  81. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommit.py +0 -0
  82. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommitMessage.py +0 -0
  83. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Private.py +0 -0
  84. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/RebaseMergeCommit.py +0 -0
  85. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanning.py +0 -0
  86. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanningPushProtection.py +0 -0
  87. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashCommitMerge.py +0 -0
  88. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashMergeCommitMessage.py +0 -0
  89. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
  90. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportDiscussions.py +0 -0
  91. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportIssues.py +0 -0
  92. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportProjects.py +0 -0
  93. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportWikis.py +0 -0
  94. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/TemplateRepository.py +0 -0
  95. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/WebCommitSignoff.py +0 -0
  96. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/__init__.py +0 -0
  97. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
  98. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
  99. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
  100. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/CustomizationQuery.py +0 -0
  101. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Impl/ExistsRequirementImpl.py +0 -0
  102. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Impl/__init__.py +0 -0
  103. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Module.py +0 -0
  104. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/CodeOwners.py +0 -0
  105. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/Contributing.py +0 -0
  106. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/IssueTemplates.py +0 -0
  107. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/PullRequestTemplates.py +0 -0
  108. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/SecurityPolicy.py +0 -0
  109. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/Requirements/__init__.py +0 -0
  110. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomization/__init__.py +0 -0
  111. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubCustomizationPlugin.py +0 -0
  112. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
  113. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/EnableRulesetRequirementImpl.py +0 -0
  114. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Impl/__init__.py +0 -0
  115. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Module.py +0 -0
  116. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequirePullRequests.py +0 -0
  117. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireSignedCommits.py +0 -0
  118. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/RequireStatusChecks.py +0 -0
  119. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/Requirements/__init__.py +0 -0
  120. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/RulesetQuery.py +0 -0
  121. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesets/__init__.py +0 -0
  122. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/GitHubRulesetsPlugin.py +0 -0
  123. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/Plugins/__init__.py +0 -0
  124. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/RepoAuditor/py.typed +0 -0
  125. {repoauditor-0.2.39 → repoauditor-0.2.40}/src/github_auditor/__init__.py +0 -0
  126. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/CommandLineProcessor_UnitTest.py +0 -0
  127. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/EntryPoint_UnitTest.py +0 -0
  128. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugin_UnitTest.py +0 -0
  129. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubCustomization/CutomizationQuery_UnitTest.py +0 -0
  130. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubCustomization/ExistsRequirementImpl_UnitTest.py +0 -0
  131. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubCustomization/GitHubCustomization_UnitTest.py +0 -0
  132. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubCustomization_EndToEndTest.py +0 -0
  133. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
  134. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
  135. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -0
  136. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -0
  137. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
  138. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -0
  139. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +0 -0
  140. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
  141. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -0
  142. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
  143. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
  144. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
  145. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -0
  146. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -0
  147. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -0
  148. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -0
  149. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -0
  150. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -0
  151. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -0
  152. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -0
  153. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
  154. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +0 -0
  155. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubModule/fixtures.py +0 -0
  156. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubRuleset_EndToEndTest.py +0 -0
  157. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubRulesets/GitHubRuleset_UnitTest.py +0 -0
  158. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHubRulesets/RulsesetQuery_UnitTest.py +0 -0
  159. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/GitHub_EndToEndTest.py +0 -0
  160. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/__snapshots__/GitHubCustomization_EndToEndTest.ambr +0 -0
  161. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/__snapshots__/GitHubRuleset_EndToEndTest.ambr +0 -0
  162. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/conftest.py +0 -0
  163. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Plugins/utilities.py +0 -0
  164. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Query_UnitTest.py +0 -0
  165. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/Requirement_UnitTest.py +0 -0
  166. {repoauditor-0.2.39 → repoauditor-0.2.40}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
  167. {repoauditor-0.2.39 → repoauditor-0.2.40}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RepoAuditor
3
- Version: 0.2.39
3
+ Version: 0.2.40
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
@@ -19,6 +19,7 @@ from dbrownell_Common.Streams.DoneManager import DoneManager # type: ignore[imp
19
19
  from rich.progress import Progress, TimeElapsedColumn
20
20
 
21
21
  from RepoAuditor.Module import EvaluateResult, ExecutionStyle, Module, OnStatusFunc
22
+ from RepoAuditor.Requirement import ReturnCode
22
23
 
23
24
 
24
25
  # ----------------------------------------------------------------------
@@ -75,11 +76,14 @@ def CalcResultInfo(
75
76
 
76
77
  Returns a code value indicating success, warning, or error,
77
78
  as well as a string description of the result.
79
+ If the result is a warning or error, return immediately.
80
+ "Does Not Apply" is considered as a success.
78
81
  """
79
- return_code = 0
82
+ return_code = ReturnCode.SUCCESS
83
+ return_msg = ""
80
84
 
81
85
  if not all_eval_infos:
82
- return 0, "module does not apply"
86
+ return ReturnCode.DOESNOTAPPLY, "module does not apply"
83
87
 
84
88
  for eval_infos in all_eval_infos:
85
89
  for eval_info in eval_infos:
@@ -87,17 +91,18 @@ def CalcResultInfo(
87
91
 
88
92
  if result == EvaluateResult.Warning:
89
93
  if eval_info.module.name in warnings_as_errors_module_names:
94
+ # Treat warnings as errors enabled so recast the result type
90
95
  result = EvaluateResult.Error
91
96
  elif eval_info.module.name in ignore_warnings_module_names:
92
97
  continue
93
98
 
94
99
  if result == EvaluateResult.Error:
95
- return -1, "errors were encountered"
100
+ return ReturnCode.ERROR, "errors were encountered"
96
101
 
97
102
  if result == EvaluateResult.Warning:
98
- return_code = 1
103
+ return_code, return_msg = ReturnCode.WARNING, "warnings were encountered"
99
104
 
100
- return return_code, "" if return_code == 0 else "warnings were encountered"
105
+ return return_code, return_msg
101
106
 
102
107
 
103
108
  def Execute(
@@ -15,6 +15,7 @@ from dbrownell_Common.TyperEx import TypeDefinitionItemType # type: ignore[impo
15
15
 
16
16
  from RepoAuditor.Impl.ParallelSequentialProcessor import ParallelSequentialProcessor
17
17
  from RepoAuditor.Query import EvaluateResult, ExecutionStyle, OnStatusFunc, Query, StatusInfo
18
+ from RepoAuditor.Requirement import ReturnCode
18
19
 
19
20
 
20
21
  # ----------------------------------------------------------------------
@@ -133,7 +134,19 @@ class Module(ABC):
133
134
  status_info.num_does_not_apply += len(query.requirements)
134
135
 
135
136
  status_func(*status_info.__dict__.values())
136
- return 0, []
137
+ # Since query returned None, it means it was not valid.
138
+ return 2, [
139
+ Module.EvaluateInfo(
140
+ result=EvaluateResult.DoesNotApply,
141
+ context=f"{query.name} did not return valid data.",
142
+ resolution="",
143
+ rationale="",
144
+ requirement=requirement,
145
+ query=query,
146
+ module=self,
147
+ )
148
+ for requirement in query.requirements
149
+ ]
137
150
 
138
151
  prev_query_status_info = StatusInfo()
139
152
 
@@ -171,15 +184,18 @@ class Module(ABC):
171
184
  max_num_threads=max_num_threads,
172
185
  )
173
186
 
174
- return_code = 0
187
+ return_code = ReturnCode.SUCCESS
175
188
 
176
189
  for evaluate_info in evaluate_infos:
177
190
  if evaluate_info.result == EvaluateResult.Error:
178
- return_code = -1
191
+ return_code = ReturnCode.ERROR
179
192
  break
180
193
 
181
194
  if evaluate_info.result == EvaluateResult.Warning:
182
- return_code = 1
195
+ return_code = ReturnCode.WARNING
196
+
197
+ if evaluate_info.result == EvaluateResult.DoesNotApply:
198
+ return_code = ReturnCode.DOESNOTAPPLY
183
199
 
184
200
  # Cleanup any resources created during the query
185
201
  query.Cleanup(query_data)
@@ -12,7 +12,7 @@ from dataclasses import dataclass
12
12
  from typing import Any, Optional, Protocol
13
13
 
14
14
  from RepoAuditor.Impl.ParallelSequentialProcessor import ParallelSequentialProcessor
15
- from RepoAuditor.Requirement import EvaluateResult, ExecutionStyle, Requirement
15
+ from RepoAuditor.Requirement import EvaluateResult, ExecutionStyle, Requirement, ReturnCode
16
16
 
17
17
 
18
18
  # ----------------------------------------------------------------------
@@ -90,21 +90,22 @@ class Query(ABC):
90
90
  query_data,
91
91
  requirement_args.get(requirement.name, {}),
92
92
  )
93
- return_code = 0
93
+ return_code = ReturnCode.SUCCESS
94
94
 
95
95
  with status_info_lock:
96
96
  status_info.num_completed += 1
97
97
 
98
98
  if result_info.result == EvaluateResult.DoesNotApply:
99
99
  status_info.num_does_not_apply += 1
100
+ return_code = ReturnCode.DOESNOTAPPLY
100
101
  elif result_info.result == EvaluateResult.Success:
101
102
  status_info.num_success += 1
102
103
  elif result_info.result == EvaluateResult.Error:
103
104
  status_info.num_error += 1
104
- return_code = -1
105
+ return_code = ReturnCode.ERROR
105
106
  elif result_info.result == EvaluateResult.Warning:
106
107
  status_info.num_warning += 1
107
- return_code = 1
108
+ return_code = ReturnCode.WARNING
108
109
  else:
109
110
  raise RuntimeError(result_info.result) # pragma: no cover
110
111
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  from abc import ABC, abstractmethod
10
10
  from dataclasses import dataclass, field
11
- from enum import Enum, auto
11
+ from enum import Enum, IntEnum, auto
12
12
  from typing import Any, Optional
13
13
 
14
14
  from dbrownell_Common.TyperEx import TypeDefinitionItemType # type: ignore[import-untyped]
@@ -27,6 +27,15 @@ class EvaluateResult(Enum):
27
27
  Error = auto()
28
28
 
29
29
 
30
+ class ReturnCode(IntEnum):
31
+ """Various return codes for operations, indicating success, failure, warning, etc."""
32
+
33
+ SUCCESS = 0
34
+ ERROR = -1
35
+ WARNING = 1
36
+ DOESNOTAPPLY = 2
37
+
38
+
30
39
  # ----------------------------------------------------------------------
31
40
  class Requirement(ABC):
32
41
  """A single requirement that can be evaluated against a set of data."""
@@ -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.39"
5
+ __version__ = "0.2.40"
@@ -178,6 +178,7 @@ class TestExecute:
178
178
  (EvaluateResult.Warning, 1, False, False),
179
179
  (EvaluateResult.Warning, -1, True, False),
180
180
  (EvaluateResult.Warning, 0, False, True),
181
+ (EvaluateResult.DoesNotApply, 0, False, False),
181
182
  ],
182
183
  )
183
184
  def test_NotSuccess(self, data):
@@ -328,9 +329,9 @@ class TestExecute:
328
329
  Processing 'MyModule' (1 of 1)...
329
330
 
330
331
 
331
- DONE! (0, <scrubbed duration>)
332
- DONE! (0, <scrubbed duration>)
333
- DONE! (0, <scrubbed duration>)
332
+ DONE! (2, <scrubbed duration>)
333
+ DONE! (2, <scrubbed duration>)
334
+ DONE! (2, <scrubbed duration>)
334
335
  """,
335
336
  )
336
337
 
@@ -357,7 +357,20 @@ def test_Module(single_threaded):
357
357
  assert results[1][3].module is module
358
358
 
359
359
  # QueryC
360
- assert results[2] == []
360
+ query_c_expected_results = [
361
+ Module.EvaluateInfo(
362
+ result=EvaluateResult.DoesNotApply,
363
+ context="QueryC did not return valid data.",
364
+ rationale="",
365
+ resolution="",
366
+ requirement=requirement,
367
+ query=queryC,
368
+ module=module,
369
+ )
370
+ for requirement in queryC.requirements
371
+ ]
372
+ for idx, result in enumerate(results[2]):
373
+ assert result == query_c_expected_results[idx]
361
374
 
362
375
  # Validate the notifications
363
376
  if single_threaded:
@@ -46,7 +46,6 @@ class TestEnableRulesetRequirementImpl:
46
46
  query_data = {}
47
47
  requirement_args = {"true": False}
48
48
  result = requirement.Evaluate(query_data, requirement_args)
49
- print(result)
50
49
  assert result.result == EvaluateResult.DoesNotApply
51
50
 
52
51
  def test_Evaluate_InvalidRule(self):