RepoAuditor 0.2.52__tar.gz → 0.2.53__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 (166) hide show
  1. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/workflows/EndToEnd.yml +1 -1
  2. {repoauditor-0.2.52 → repoauditor-0.2.53}/PKG-INFO +1 -1
  3. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Impl/ExistsRequirementImpl.py +17 -4
  4. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/CodeOfConduct.py +0 -1
  5. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/CodeOwners.py +0 -1
  6. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/Contributing.py +0 -1
  7. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/IssueTemplates.py +0 -1
  8. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/LicenseFile.py +0 -1
  9. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/PullRequestTemplates.py +0 -1
  10. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/ReadMe.py +0 -1
  11. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/SecurityPolicy.py +0 -1
  12. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/__init__.py +1 -1
  13. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubCommunityStandards/ExistsRequirementImpl_UnitTest.py +4 -9
  14. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubCommunityStandards_EndToEndTest.py +123 -13
  15. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/__snapshots__/GitHubCommunityStandards_EndToEndTest.ambr +90 -0
  16. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/utilities.py +13 -2
  17. {repoauditor-0.2.52 → repoauditor-0.2.53}/.copier-answers.yml +0 -0
  18. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/CODEOWNERS +0 -0
  19. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  20. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  21. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  22. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  23. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/actions/release_impl/action.yml +0 -0
  24. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/pull_request_template.md +0 -0
  25. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/release_sources.yaml +0 -0
  26. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/workflows/CICD.yml +0 -0
  27. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/workflows/CICD_impl.yml +0 -0
  28. {repoauditor-0.2.52 → repoauditor-0.2.53}/.github/workflows/codeql.yml +0 -0
  29. {repoauditor-0.2.52 → repoauditor-0.2.53}/.gitignore +0 -0
  30. {repoauditor-0.2.52 → repoauditor-0.2.53}/.pre-commit-config.yaml +0 -0
  31. {repoauditor-0.2.52 → repoauditor-0.2.53}/.python-version +0 -0
  32. {repoauditor-0.2.52 → repoauditor-0.2.53}/CODE_OF_CONDUCT.md +0 -0
  33. {repoauditor-0.2.52 → repoauditor-0.2.53}/CONTRIBUTING.md +0 -0
  34. {repoauditor-0.2.52 → repoauditor-0.2.53}/DEVELOPMENT.md +0 -0
  35. {repoauditor-0.2.52 → repoauditor-0.2.53}/GOVERNANCE.md +0 -0
  36. {repoauditor-0.2.52 → repoauditor-0.2.53}/LICENSE +0 -0
  37. {repoauditor-0.2.52 → repoauditor-0.2.53}/MAINTAINERS.md +0 -0
  38. {repoauditor-0.2.52 → repoauditor-0.2.53}/README.md +0 -0
  39. {repoauditor-0.2.52 → repoauditor-0.2.53}/SECURITY.md +0 -0
  40. {repoauditor-0.2.52 → repoauditor-0.2.53}/default_config.yaml +0 -0
  41. {repoauditor-0.2.52 → repoauditor-0.2.53}/minisign_key.pub +0 -0
  42. {repoauditor-0.2.52 → repoauditor-0.2.53}/pyproject.toml +0 -0
  43. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/AutoGitSemVer.yaml +0 -0
  44. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/CommandLineProcessor.py +0 -0
  45. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Display.py +0 -0
  46. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/EntryPoint.py +0 -0
  47. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/ExecuteModules.py +0 -0
  48. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
  49. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Impl/__init__.py +0 -0
  50. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Module.py +0 -0
  51. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugin.py +0 -0
  52. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
  53. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
  54. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowMainlineForcePushes.py +0 -0
  55. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
  56. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
  57. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
  58. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
  59. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
  60. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
  61. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
  62. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
  63. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
  64. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
  65. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
  66. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
  67. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
  68. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
  69. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
  70. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
  71. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
  72. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/Protected.py +0 -0
  73. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQueryRequirements/__init__.py +0 -0
  74. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -0
  75. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +0 -0
  76. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRulesetRequirementImpl.py +0 -0
  77. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +0 -0
  78. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
  79. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
  80. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/RulesetQuery.py +0 -0
  81. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequirePullRequests.py +0 -0
  82. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSignedCommits.py +0 -0
  83. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireStatusChecks.py +0 -0
  84. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/__init__.py +0 -0
  85. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
  86. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/AutoMerge.py +0 -0
  87. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DefaultBranch.py +0 -0
  88. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DeleteHeadBranches.py +0 -0
  89. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/DependabotSecurityUpdates.py +0 -0
  90. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Description.py +0 -0
  91. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
  92. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/StandardValueRequirementImpl.py +0 -0
  93. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Impl/__init__.py +0 -0
  94. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/License.py +0 -0
  95. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommit.py +0 -0
  96. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/MergeCommitMessage.py +0 -0
  97. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/Private.py +0 -0
  98. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/RebaseMergeCommit.py +0 -0
  99. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanning.py +0 -0
  100. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SecretScanningPushProtection.py +0 -0
  101. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashCommitMerge.py +0 -0
  102. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SquashMergeCommitMessage.py +0 -0
  103. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
  104. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportDiscussions.py +0 -0
  105. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportIssues.py +0 -0
  106. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportProjects.py +0 -0
  107. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/SupportWikis.py +0 -0
  108. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/TemplateRepository.py +0 -0
  109. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/WebCommitSignoff.py +0 -0
  110. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/StandardQueryRequirements/__init__.py +0 -0
  111. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
  112. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
  113. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
  114. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/CommunityStandardsQuery.py +0 -0
  115. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Impl/__init__.py +0 -0
  116. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Module.py +0 -0
  117. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/Requirements/__init__.py +0 -0
  118. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandards/__init__.py +0 -0
  119. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubCommunityStandardsPlugin.py +0 -0
  120. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
  121. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Plugins/__init__.py +0 -0
  122. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Query.py +0 -0
  123. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/Requirement.py +0 -0
  124. {repoauditor-0.2.52 → repoauditor-0.2.53}/src/RepoAuditor/py.typed +0 -0
  125. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/CommandLineProcessor_UnitTest.py +0 -0
  126. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/EntryPoint_UnitTest.py +0 -0
  127. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/ExecuteModules_UnitTest.py +0 -0
  128. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Module_UnitTest.py +0 -0
  129. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugin_UnitTest.py +0 -0
  130. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubCommunityStandards/CommunityStandardsQuery_UnitTest.py +0 -0
  131. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubCommunityStandards/GitHubCommunityStandards_UnitTest.py +0 -0
  132. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubEnterprise_EndToEndTest.py +0 -0
  133. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
  134. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -0
  135. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -0
  136. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -0
  137. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -0
  138. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -0
  139. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +0 -0
  140. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
  141. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -0
  142. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
  143. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/EnableRulesetRequirementImpl_UnitTest.py +0 -0
  144. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
  145. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
  146. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/RulesetRequirements_UnitTest.py +0 -0
  147. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/RulsesetQuery_UnitTest.py +0 -0
  148. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -0
  149. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -0
  150. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -0
  151. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -0
  152. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -0
  153. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -0
  154. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -0
  155. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -0
  156. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
  157. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +0 -0
  158. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHubModule/fixtures.py +0 -0
  159. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/GitHub_EndToEndTest.py +0 -0
  160. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/__snapshots__/GitHubEnterprise_EndToEndTest.ambr +0 -0
  161. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +0 -0
  162. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Plugins/conftest.py +0 -0
  163. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Query_UnitTest.py +0 -0
  164. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/Requirement_UnitTest.py +0 -0
  165. {repoauditor-0.2.52 → repoauditor-0.2.53}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
  166. {repoauditor-0.2.52 → repoauditor-0.2.53}/uv.lock +0 -0
@@ -41,7 +41,7 @@ jobs:
41
41
  # Create PAT file for Enterprise GitHub server, in this case github.gatech.edu.
42
42
  - name: Create github_gatech_pat.txt
43
43
  run: |
44
- echo ${{ secrets.TESTING_GITHUB_PAT }} > tests/Plugins/github_gatech_pat.txt
44
+ echo ${{ secrets.TESTING_GITHUB_GATECH_PAT }} > tests/Plugins/github_gatech_pat.txt
45
45
 
46
46
  - name: Environment Variables
47
47
  shell: bash
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RepoAuditor
3
- Version: 0.2.52
3
+ Version: 0.2.53
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,20 +19,32 @@ from RepoAuditor.Requirement import EvaluateResult, ExecutionStyle, Requirement
19
19
 
20
20
  # ----------------------------------------------------------------------
21
21
  class ExistsRequirementImpl(Requirement):
22
- """Object that implements check if a file exists."""
22
+ """Requirement which implements check if a file exists."""
23
23
 
24
24
  # ----------------------------------------------------------------------
25
25
  def __init__(
26
26
  self,
27
27
  name: str,
28
- dynamic_arg_name: str,
29
28
  github_file: str,
30
29
  possible_locations: Sequence[str],
31
30
  resolution: str,
32
31
  rationale: str,
33
32
  *,
33
+ dynamic_arg_name: str = "unrequired",
34
34
  requires_explicit_include: bool = False,
35
35
  ) -> None:
36
+ """Construct.
37
+
38
+ Args:
39
+ name (str): The name of the requirement. Used for unique identification.
40
+ github_file (str): The name of the file in the GitHub repository being checked for.
41
+ possible_locations (Sequence[str]): List of potential paths in the repo to check if `github_file` exists.
42
+ resolution (str): Message on how to resolve the requirement in case of an error.
43
+ rationale (str): Rationale message on why this requirement is needed.
44
+ dynamic_arg_name (str, optional): Name of the runtime argument (e.g. from command line) to this requirement.Defaults to "unrequired", which if enabled causes the requirement to be skipped.
45
+ requires_explicit_include (bool, optional): Flag checking if this requirement needs to be explicitly included in the invocation. Defaults to False.
46
+
47
+ """
36
48
  super().__init__(
37
49
  name,
38
50
  f"Validates that {github_file} file exists.",
@@ -56,7 +68,7 @@ class ExistsRequirementImpl(Requirement):
56
68
  bool,
57
69
  typer.Option(
58
70
  False,
59
- help=f"Ensures that the file {self.github_file} exists.",
71
+ help=f"Disable requirement that the file {self.github_file} exists.",
60
72
  ),
61
73
  ),
62
74
  }
@@ -68,7 +80,8 @@ class ExistsRequirementImpl(Requirement):
68
80
  query_data: dict[str, Any],
69
81
  requirement_args: dict[str, Any],
70
82
  ) -> Requirement.EvaluateImplResult:
71
- if requirement_args[self.dynamic_arg_name]:
83
+ # Check if `dynamic_arg_name` is `not unrequired`.
84
+ if not requirement_args[self.dynamic_arg_name]:
72
85
  for location in self.possible_locations:
73
86
  # Get full file path in temporary repo directory and check if it exists
74
87
  # This checks both upper case and lower case variants
@@ -17,7 +17,6 @@ class CodeOfConduct(ExistsRequirementImpl):
17
17
  def __init__(self) -> None:
18
18
  super().__init__(
19
19
  "CodeOfConduct",
20
- "exists",
21
20
  "CODE_OF_CONDUCT",
22
21
  [
23
22
  ".github/CODE_OF_CONDUCT",
@@ -17,7 +17,6 @@ class CodeOwners(ExistsRequirementImpl):
17
17
  def __init__(self) -> None:
18
18
  super().__init__(
19
19
  "CodeOwners",
20
- "exists",
21
20
  "CODEOWNERS",
22
21
  [
23
22
  ".github/CODEOWNERS",
@@ -17,7 +17,6 @@ class Contributing(ExistsRequirementImpl):
17
17
  def __init__(self) -> None:
18
18
  super().__init__(
19
19
  "Contributing",
20
- "exists",
21
20
  "CONTRIBUTING",
22
21
  [
23
22
  ".github/CONTRIBUTING.md",
@@ -15,7 +15,6 @@ class IssueTemplates(ExistsRequirementImpl):
15
15
  def __init__(self) -> None:
16
16
  super().__init__(
17
17
  "IssueTemplates",
18
- "exists",
19
18
  "ISSUE_TEMPLATES",
20
19
  [
21
20
  ".github/ISSUE_TEMPLATE.md",
@@ -19,7 +19,6 @@ class LicenseFile(ExistsRequirementImpl):
19
19
  def __init__(self) -> None:
20
20
  super().__init__(
21
21
  "LicenseFile",
22
- "exists",
23
22
  "LICENSE",
24
23
  [
25
24
  "LICENSE",
@@ -15,7 +15,6 @@ class PullRequestTemplate(ExistsRequirementImpl):
15
15
  def __init__(self) -> None:
16
16
  super().__init__(
17
17
  "PullRequestTemplate",
18
- "exists",
19
18
  "PULL_REQUESTS_TEMPLATE",
20
19
  [
21
20
  ".github/PULL_REQUEST_TEMPLATE.md",
@@ -17,7 +17,6 @@ class ReadMe(ExistsRequirementImpl):
17
17
  def __init__(self) -> None:
18
18
  super().__init__(
19
19
  "ReadMe",
20
- "exists",
21
20
  "README",
22
21
  [
23
22
  "README.md",
@@ -17,7 +17,6 @@ class SecurityPolicy(ExistsRequirementImpl):
17
17
  def __init__(self) -> None:
18
18
  super().__init__(
19
19
  "SecurityPolicy",
20
- "exists",
21
20
  "SECURITY",
22
21
  [
23
22
  ".github/SECURITY.md",
@@ -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.52"
5
+ __version__ = "0.2.53"
@@ -23,7 +23,6 @@ class TestExistsRequirementImpl:
23
23
  """Test the requirement implementation constructor."""
24
24
  requirement = ExistsRequirementImpl(
25
25
  name="Exists Some Value",
26
- dynamic_arg_name="exists",
27
26
  github_file="README.md",
28
27
  possible_locations=[
29
28
  "README.md",
@@ -37,7 +36,6 @@ class TestExistsRequirementImpl:
37
36
  """Test disabled requirement."""
38
37
  requirement = ExistsRequirementImpl(
39
38
  name="Exists Some Value",
40
- dynamic_arg_name="exists",
41
39
  github_file="README.md",
42
40
  possible_locations=[
43
41
  "README.md",
@@ -47,7 +45,7 @@ class TestExistsRequirementImpl:
47
45
  )
48
46
 
49
47
  query_data = {}
50
- requirement_args = {"exists": False}
48
+ requirement_args = {"unrequired": True}
51
49
  result = requirement.Evaluate(query_data, requirement_args)
52
50
  assert result.result == EvaluateResult.DoesNotApply
53
51
 
@@ -55,7 +53,6 @@ class TestExistsRequirementImpl:
55
53
  """Test for when file is not found."""
56
54
  requirement = ExistsRequirementImpl(
57
55
  name="Exists Some Value",
58
- dynamic_arg_name="exists",
59
56
  github_file="README.md",
60
57
  possible_locations=[
61
58
  "MEREAD.md",
@@ -65,7 +62,7 @@ class TestExistsRequirementImpl:
65
62
  )
66
63
 
67
64
  query_data = {"repo_dir": MockDirectory()}
68
- requirement_args = {"exists": True}
65
+ requirement_args = {"unrequired": False}
69
66
  result = requirement.Evaluate(query_data, requirement_args)
70
67
  assert result.result == EvaluateResult.Error
71
68
  assert "No README.md file found" in result.context
@@ -74,7 +71,6 @@ class TestExistsRequirementImpl:
74
71
  """Test for when file is found as is."""
75
72
  requirement = ExistsRequirementImpl(
76
73
  name="Exists Some Value",
77
- dynamic_arg_name="exists",
78
74
  github_file="README.md",
79
75
  possible_locations=[
80
76
  "README.md",
@@ -88,7 +84,7 @@ class TestExistsRequirementImpl:
88
84
  f.write("temp file in temp directory")
89
85
 
90
86
  query_data = {"repo_dir": tempdir}
91
- requirement_args = {"exists": True}
87
+ requirement_args = {"unrequired": False}
92
88
  result = requirement.Evaluate(query_data, requirement_args)
93
89
  assert result.result == EvaluateResult.Success
94
90
  assert "README.md found in repository" in result.context
@@ -97,7 +93,6 @@ class TestExistsRequirementImpl:
97
93
  """Test if provided path is directory."""
98
94
  requirement = ExistsRequirementImpl(
99
95
  name="Exists Some Value",
100
- dynamic_arg_name="exists",
101
96
  github_file="README.md",
102
97
  possible_locations=[
103
98
  "docs",
@@ -115,7 +110,7 @@ class TestExistsRequirementImpl:
115
110
  f.write("temp file in temp directory")
116
111
 
117
112
  query_data = {"repo_dir": tempdir}
118
- requirement_args = {"exists": True}
113
+ requirement_args = {"unrequired": False}
119
114
  result = requirement.Evaluate(query_data, requirement_args)
120
115
  assert result.result == EvaluateResult.Success
121
116
  assert "File found in docs directory of the repository" in result.context
@@ -61,7 +61,16 @@ class TestCommunityStandards:
61
61
  """Test if a CODE_OF_CONDUCT file exists in the repository."""
62
62
  result = CliRunner().invoke(
63
63
  app,
64
- pat_args + ["--GitHubCommunityStandards-CodeOfConduct-exists"],
64
+ pat_args
65
+ + [
66
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
67
+ "--GitHubCommunityStandards-Contributing-unrequired",
68
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
69
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
70
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
71
+ "--GitHubCommunityStandards-ReadMe-unrequired",
72
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
73
+ ],
65
74
  )
66
75
 
67
76
  assert result.exit_code == 0, result.output
@@ -76,7 +85,16 @@ class TestCommunityStandards:
76
85
  """Test if a CODE_OF_CONDUCT file does not exist in the repository."""
77
86
  result = CliRunner().invoke(
78
87
  app,
79
- pat_args + ["--GitHubCommunityStandards-CodeOfConduct-exists"],
88
+ pat_args
89
+ + [
90
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
91
+ "--GitHubCommunityStandards-Contributing-unrequired",
92
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
93
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
94
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
95
+ "--GitHubCommunityStandards-ReadMe-unrequired",
96
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
97
+ ],
80
98
  )
81
99
 
82
100
  assert result.exit_code == -1, result.output
@@ -86,7 +104,16 @@ class TestCommunityStandards:
86
104
  """Test if a CODEOWNERS file exists in the repository."""
87
105
  result = CliRunner().invoke(
88
106
  app,
89
- pat_args + ["--GitHubCommunityStandards-CodeOwners-exists"],
107
+ pat_args
108
+ + [
109
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
110
+ "--GitHubCommunityStandards-Contributing-unrequired",
111
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
112
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
113
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
114
+ "--GitHubCommunityStandards-ReadMe-unrequired",
115
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
116
+ ],
90
117
  )
91
118
 
92
119
  assert result.exit_code == 0, result.output
@@ -101,7 +128,16 @@ class TestCommunityStandards:
101
128
  """Test if a CODEOWNERS file does not exist in the repository."""
102
129
  result = CliRunner().invoke(
103
130
  app,
104
- pat_args + ["--GitHubCommunityStandards-CodeOwners-exists"],
131
+ pat_args
132
+ + [
133
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
134
+ "--GitHubCommunityStandards-Contributing-unrequired",
135
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
136
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
137
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
138
+ "--GitHubCommunityStandards-ReadMe-unrequired",
139
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
140
+ ],
105
141
  )
106
142
 
107
143
  assert result.exit_code == -1, result.output
@@ -111,7 +147,16 @@ class TestCommunityStandards:
111
147
  """Test if a CONTRIBUTING.md file exists in the repository."""
112
148
  result = CliRunner().invoke(
113
149
  app,
114
- pat_args + ["--GitHubCommunityStandards-Contributing-exists"],
150
+ pat_args
151
+ + [
152
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
153
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
154
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
155
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
156
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
157
+ "--GitHubCommunityStandards-ReadMe-unrequired",
158
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
159
+ ],
115
160
  )
116
161
 
117
162
  assert result.exit_code == 0, result.output
@@ -126,7 +171,16 @@ class TestCommunityStandards:
126
171
  """Test if a CONTRIBUTING file does not exist in the repository."""
127
172
  result = CliRunner().invoke(
128
173
  app,
129
- pat_args + ["--GitHubCommunityStandards-Contributing-exists"],
174
+ pat_args
175
+ + [
176
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
177
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
178
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
179
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
180
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
181
+ "--GitHubCommunityStandards-ReadMe-unrequired",
182
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
183
+ ],
130
184
  )
131
185
 
132
186
  assert result.exit_code == -1, result.output
@@ -134,8 +188,19 @@ class TestCommunityStandards:
134
188
 
135
189
  def test_IssueTemplate(self, pat_args, snapshot):
136
190
  """Test if an Issue template file (e.g. ISSUE_TEMPLATE.md) exists in the repository."""
137
- result = CliRunner().invoke(app, pat_args + ["--GitHubCommunityStandards-IssueTemplates-exists"])
138
-
191
+ result = CliRunner().invoke(
192
+ app,
193
+ pat_args
194
+ + [
195
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
196
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
197
+ "--GitHubCommunityStandards-Contributing-unrequired",
198
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
199
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
200
+ "--GitHubCommunityStandards-ReadMe-unrequired",
201
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
202
+ ],
203
+ )
139
204
  assert result.exit_code == 0, result.output
140
205
  assert ScrubDurationGithuburlAndSpaces(result.stdout) == snapshot
141
206
 
@@ -148,7 +213,16 @@ class TestCommunityStandards:
148
213
  """Test if no Issue template file exists in the repository."""
149
214
  result = CliRunner().invoke(
150
215
  app,
151
- pat_args + ["--GitHubCommunityStandards-IssueTemplates-exists"],
216
+ pat_args
217
+ + [
218
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
219
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
220
+ "--GitHubCommunityStandards-Contributing-unrequired",
221
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
222
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
223
+ "--GitHubCommunityStandards-ReadMe-unrequired",
224
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
225
+ ],
152
226
  )
153
227
 
154
228
  assert result.exit_code == -1, result.output
@@ -161,7 +235,16 @@ class TestCommunityStandards:
161
235
  """
162
236
  result = CliRunner().invoke(
163
237
  app,
164
- pat_args + ["--GitHubCommunityStandards-PullRequestTemplate-exists"],
238
+ pat_args
239
+ + [
240
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
241
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
242
+ "--GitHubCommunityStandards-Contributing-unrequired",
243
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
244
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
245
+ "--GitHubCommunityStandards-ReadMe-unrequired",
246
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
247
+ ],
165
248
  )
166
249
 
167
250
  assert result.exit_code == 0, result.output
@@ -176,7 +259,16 @@ class TestCommunityStandards:
176
259
  """Test if no Pull Request template file exists in the repository."""
177
260
  result = CliRunner().invoke(
178
261
  app,
179
- pat_args + ["--GitHubCommunityStandards-PullRequestTemplate-exists"],
262
+ pat_args
263
+ + [
264
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
265
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
266
+ "--GitHubCommunityStandards-Contributing-unrequired",
267
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
268
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
269
+ "--GitHubCommunityStandards-ReadMe-unrequired",
270
+ "--GitHubCommunityStandards-SecurityPolicy-unrequired",
271
+ ],
180
272
  )
181
273
 
182
274
  assert result.exit_code == -1, result.output
@@ -186,7 +278,16 @@ class TestCommunityStandards:
186
278
  """Test if a Security policy file (e.g. SECURITY.md) exists in the repository."""
187
279
  result = CliRunner().invoke(
188
280
  app,
189
- pat_args + ["--GitHubCommunityStandards-SecurityPolicy-exists"],
281
+ pat_args
282
+ + [
283
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
284
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
285
+ "--GitHubCommunityStandards-Contributing-unrequired",
286
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
287
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
288
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
289
+ "--GitHubCommunityStandards-ReadMe-unrequired",
290
+ ],
190
291
  )
191
292
 
192
293
  assert result.exit_code == 0, result.output
@@ -201,7 +302,16 @@ class TestCommunityStandards:
201
302
  """Test if no Security policy file exists in the repository."""
202
303
  result = CliRunner().invoke(
203
304
  app,
204
- pat_args + ["--GitHubCommunityStandards-SecurityPolicy-exists"],
305
+ pat_args
306
+ + [
307
+ "--GitHubCommunityStandards-CodeOfConduct-unrequired",
308
+ "--GitHubCommunityStandards-CodeOwners-unrequired",
309
+ "--GitHubCommunityStandards-Contributing-unrequired",
310
+ "--GitHubCommunityStandards-IssueTemplates-unrequired",
311
+ "--GitHubCommunityStandards-LicenseFile-unrequired",
312
+ "--GitHubCommunityStandards-PullRequestTemplate-unrequired",
313
+ "--GitHubCommunityStandards-ReadMe-unrequired",
314
+ ],
205
315
  )
206
316
 
207
317
  assert result.exit_code == -1, result.output
@@ -1,4 +1,33 @@
1
1
  # serializer version: 1
2
+ # name: TestCommunityStandards.test_CodeOfConduct
3
+ '''
4
+ Processing 1 module...
5
+ Processing 'GitHubCommunityStandards' (1 of 1)...
6
+
7
+
8
+
9
+
10
+ DONE! (0, <scrubbed duration>)
11
+ DONE! (0, <scrubbed duration>)
12
+
13
+
14
+ ╭──────────────────────────────────────────────────────────────────────────── GitHubCommunityStandards ────────────────────────────────────────────────────────────────────────────╮
15
+ │ │
16
+ │ Validates GitHub repository files for Community Standards. │
17
+ │ │
18
+ │ Successful: 1 (12.50%) │
19
+ │ Warnings: 0 (0.00%) │
20
+ │ Errors: 0 (0.00%) │
21
+ │ Skipped: 7 (87.50%) │
22
+ │ │
23
+ │ │
24
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
25
+
26
+ Results: DONE! (0, <scrubbed duration>)
27
+
28
+
29
+ '''
30
+ # ---
2
31
  # name: TestCommunityStandards.test_CodeOwners
3
32
  '''
4
33
  Processing 1 module...
@@ -84,6 +113,67 @@
84
113
  Results: DONE! (0, <scrubbed duration>)
85
114
 
86
115
 
116
+ '''
117
+ # ---
118
+ # name: TestCommunityStandards.test_NoCodeOfConduct
119
+ '''
120
+ Processing 1 module...
121
+ Processing 'GitHubCommunityStandards' (1 of 1)...
122
+
123
+
124
+
125
+
126
+ DONE! (-1, <scrubbed duration>)
127
+ DONE! (-1, <scrubbed duration>)
128
+
129
+
130
+ ╭──────────────────────────────────────────────────────────────────────────── GitHubCommunityStandards ────────────────────────────────────────────────────────────────────────────╮
131
+ │ │
132
+ │ Validates GitHub repository files for Community Standards. │
133
+ │ │
134
+ │ Successful: 0 (0.00%) │
135
+ │ Warnings: 0 (0.00%) │
136
+ │ Errors: 1 (12.50%) │
137
+ │ Skipped: 7 (87.50%) │
138
+ │ │
139
+ │ ╭─ [Error] CodeOfConduct ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
140
+ │ │ │ │
141
+ │ │ Validates that CODE_OF_CONDUCT file exists. │ │
142
+ │ │ │ │
143
+ │ │ ERROR: No CODE_OF_CONDUCT file found. │ │
144
+ │ │ │ │
145
+ │ │ Resolution │ │
146
+ │ │ ---------- │ │
147
+ │ │ 1) Create a CODE_OF_CONDUCT file in one of these locations: │ │
148
+ │ │ - .github/CODE_OF_CONDUCT │ │
149
+ │ │ - docs/CODE_OF_CONDUCT │ │
150
+ │ │ - CODE_OF_CONDUCT │ │
151
+ │ │ │ │
152
+ │ │ Example CODE_OF_CONDUCT file format: │ │
153
+ │ │ ``` │ │
154
+ │ │ # Contributor Code of Conduct │ │
155
+ │ │ ## Principles │ │
156
+ │ │ ## Community Guidelines │ │
157
+ │ │ ``` │ │
158
+ │ │ │ │
159
+ │ │ Rationale │ │
160
+ │ │ --------- │ │
161
+ │ │ A CODE_OF_CONDUCT defines expectations for behavior for your │ │
162
+ │ │ project's participants. │ │
163
+ │ │ │ │
164
+ │ │ Benefits: │ │
165
+ │ │ - Define community standards │ │
166
+ │ │ - Signal a welcoming and inclusive project │ │
167
+ │ │ - Outline procedures for handling abuse │ │
168
+ │ │ - Help create a positive social atmosphere for your community │ │
169
+ │ │ │ │
170
+ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
171
+ │ │
172
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
173
+
174
+ Results: DONE! (-1, <scrubbed duration>)
175
+
176
+
87
177
  '''
88
178
  # ---
89
179
  # name: TestCommunityStandards.test_NoCodeOwners
@@ -60,8 +60,19 @@ def GetGithubUrl(remote_name: str = "origin") -> str:
60
60
  """Get the Github username, repository and URL from the current git repository."""
61
61
  repo = Repo(__file__, search_parent_directories=True)
62
62
 
63
- # Get the URL for the remote specified by `remote_name`.
64
- repo_url = getattr(repo.remotes, remote_name).url
63
+ try:
64
+ # Get the URL for the remote specified by `remote_name`.
65
+ repo_url = getattr(repo.remotes, remote_name).url
66
+ except AttributeError as exc:
67
+ # The `remote_name` does not exist, so we use a default.
68
+ # Specifically for main repo CI.
69
+ if remote_name == "origin":
70
+ repo_url = "git@github.com:gt-sse-center/RepoAuditor.git"
71
+ elif remote_name == "enterprise":
72
+ repo_url = "git@github.gatech.edu:sse-center/RepoAuditor.git"
73
+ else:
74
+ # Invalid remote name so we throw exception
75
+ raise exc
65
76
 
66
77
  if repo_url.startswith("git@"):
67
78
  # If the URL starts with 'git@', it is an SSH URL.
File without changes
File without changes
File without changes
File without changes
File without changes