RepoAuditor 0.2.82__tar.gz → 0.2.84__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 (194) hide show
  1. {repoauditor-0.2.82 → repoauditor-0.2.84}/.gitignore +3 -0
  2. repoauditor-0.2.84/PKG-INFO +93 -0
  3. repoauditor-0.2.84/README.md +66 -0
  4. repoauditor-0.2.84/default_config.yaml +5 -0
  5. {repoauditor-0.2.82 → repoauditor-0.2.84/docs}/CONTRIBUTING.md +16 -8
  6. {repoauditor-0.2.82 → repoauditor-0.2.84/docs}/DEVELOPMENT.md +31 -14
  7. repoauditor-0.2.84/docs/PAT.md +27 -0
  8. repoauditor-0.2.84/docs/config_file.md +52 -0
  9. repoauditor-0.2.84/docs/index.md +55 -0
  10. repoauditor-0.2.84/docs/troubleshooting.md +1 -0
  11. repoauditor-0.2.84/docs/usage.md +98 -0
  12. repoauditor-0.2.84/mkdocs.yml +23 -0
  13. {repoauditor-0.2.82 → repoauditor-0.2.84}/pyproject.toml +1 -0
  14. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/Protected.py +1 -1
  15. repoauditor-0.2.84/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +34 -0
  16. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +1 -1
  17. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +1 -1
  18. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Private.py +1 -1
  19. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/__init__.py +1 -1
  20. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards_EndToEndTest.py +0 -22
  21. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -13
  22. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -13
  23. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -13
  24. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -13
  25. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -13
  26. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +8 -14
  27. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -10
  28. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -14
  29. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -10
  30. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -12
  31. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -11
  32. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -10
  33. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -14
  34. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -14
  35. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -11
  36. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +1 -1
  37. repoauditor-0.2.84/tests/Plugins/GitHubModule/fixtures.py +77 -0
  38. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHub_EndToEndTest.py +2 -28
  39. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +22 -22
  40. repoauditor-0.2.84/tests/Plugins/conftest.py +59 -0
  41. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/utilities.py +2 -1
  42. {repoauditor-0.2.82 → repoauditor-0.2.84}/uv.lock +290 -0
  43. repoauditor-0.2.82/PKG-INFO +0 -210
  44. repoauditor-0.2.82/README.md +0 -183
  45. repoauditor-0.2.82/default_config.yaml +0 -4
  46. repoauditor-0.2.82/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -18
  47. repoauditor-0.2.82/tests/Plugins/GitHubModule/fixtures.py +0 -28
  48. repoauditor-0.2.82/tests/Plugins/conftest.py +0 -20
  49. {repoauditor-0.2.82 → repoauditor-0.2.84}/.copier-answers.yml +0 -0
  50. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/CODEOWNERS +0 -0
  51. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  52. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  53. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  54. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  55. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/actions/release_impl/action.yml +0 -0
  56. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/pull_request_template.md +0 -0
  57. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/release_sources.yaml +0 -0
  58. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/CICD.yml +0 -0
  59. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/CICD_impl.yml +0 -0
  60. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/EndToEnd.yml +0 -0
  61. {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/codeql.yml +0 -0
  62. {repoauditor-0.2.82 → repoauditor-0.2.84}/.pre-commit-config.yaml +0 -0
  63. {repoauditor-0.2.82 → repoauditor-0.2.84}/.python-version +0 -0
  64. {repoauditor-0.2.82 → repoauditor-0.2.84}/CODE_OF_CONDUCT.md +0 -0
  65. {repoauditor-0.2.82 → repoauditor-0.2.84}/GOVERNANCE.md +0 -0
  66. {repoauditor-0.2.82 → repoauditor-0.2.84}/LICENSE +0 -0
  67. {repoauditor-0.2.82 → repoauditor-0.2.84}/MAINTAINERS.md +0 -0
  68. {repoauditor-0.2.82 → repoauditor-0.2.84}/SECURITY.md +0 -0
  69. {repoauditor-0.2.82 → repoauditor-0.2.84}/minisign_key.pub +0 -0
  70. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/AutoGitSemVer.yaml +0 -0
  71. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/CommandLineProcessor.py +0 -0
  72. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Display.py +0 -0
  73. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/EntryPoint.py +0 -0
  74. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/ExecuteModules.py +0 -0
  75. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
  76. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Impl/__init__.py +0 -0
  77. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Module.py +0 -0
  78. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugin.py +0 -0
  79. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/CommunityStandardsQuery.py +0 -0
  80. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Impl/ExistsRequirementImpl.py +0 -0
  81. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Impl/__init__.py +0 -0
  82. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Module.py +0 -0
  83. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOfConduct.py +0 -0
  84. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOwners.py +0 -0
  85. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/Contributing.py +0 -0
  86. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/IssueTemplates.py +0 -0
  87. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/LicenseFile.py +0 -0
  88. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/PullRequestTemplates.py +0 -0
  89. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/ReadMe.py +0 -0
  90. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/SecurityPolicy.py +0 -0
  91. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/__init__.py +0 -0
  92. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/__init__.py +0 -0
  93. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandardsPlugin.py +0 -0
  94. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
  95. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
  96. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowMainlineForcePushes.py +0 -0
  97. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
  98. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
  99. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
  100. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
  101. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
  102. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
  103. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
  104. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
  105. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
  106. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
  107. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
  108. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
  109. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
  110. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
  111. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
  112. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
  113. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
  114. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/__init__.py +0 -0
  115. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRulesetRequirementImpl.py +0 -0
  116. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
  117. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
  118. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetQuery.py +0 -0
  119. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/AllowMainlineForcePushes.py +0 -0
  120. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/DismissStalePullRequestApprovals.py +0 -0
  121. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/EnsureStatusChecks.py +0 -0
  122. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireApprovalMostRecentPush.py +0 -0
  123. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireApprovals.py +0 -0
  124. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireCodeOwnerReview.py +0 -0
  125. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireCodeScanningResults.py +0 -0
  126. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireConversationResolution.py +0 -0
  127. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireLinearHistory.py +0 -0
  128. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequirePullRequests.py +0 -0
  129. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSignedCommits.py +0 -0
  130. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireStatusChecksToPass.py +0 -0
  131. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSuccessfulDeployments.py +0 -0
  132. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireUpToDateBranches.py +0 -0
  133. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RestrictCreations.py +0 -0
  134. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RestrictDeletions.py +0 -0
  135. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RestrictUpdates.py +0 -0
  136. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/__init__.py +0 -0
  137. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
  138. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/AutoMerge.py +0 -0
  139. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DefaultBranch.py +0 -0
  140. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DeleteHeadBranches.py +0 -0
  141. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DependabotSecurityUpdates.py +0 -0
  142. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Description.py +0 -0
  143. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
  144. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardValueRequirementImpl.py +0 -0
  145. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/__init__.py +0 -0
  146. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/License.py +0 -0
  147. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommit.py +0 -0
  148. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommitMessage.py +0 -0
  149. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/RebaseMergeCommit.py +0 -0
  150. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanning.py +0 -0
  151. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanningPushProtection.py +0 -0
  152. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashCommitMerge.py +0 -0
  153. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashMergeCommitMessage.py +0 -0
  154. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
  155. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportDiscussions.py +0 -0
  156. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportIssues.py +0 -0
  157. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportProjects.py +0 -0
  158. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportWikis.py +0 -0
  159. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/TemplateRepository.py +0 -0
  160. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/WebCommitSignoff.py +0 -0
  161. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/__init__.py +0 -0
  162. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
  163. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
  164. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
  165. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
  166. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/__init__.py +0 -0
  167. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Query.py +0 -0
  168. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Requirement.py +0 -0
  169. {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/py.typed +0 -0
  170. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/CommandLineProcessor_UnitTest.py +0 -0
  171. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/EntryPoint_UnitTest.py +0 -0
  172. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/ExecuteModules_UnitTest.py +0 -0
  173. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Module_UnitTest.py +0 -0
  174. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugin_UnitTest.py +0 -0
  175. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards/CommunityStandardsQuery_UnitTest.py +0 -0
  176. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards/ExistsRequirementImpl_UnitTest.py +0 -0
  177. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards/GitHubCommunityStandards_UnitTest.py +0 -0
  178. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubEnterprise_EndToEndTest.py +0 -0
  179. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
  180. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
  181. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
  182. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/EnableRulesetRequirementImpl_UnitTest.py +0 -0
  183. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
  184. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
  185. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/RulesetRequirements_UnitTest.py +0 -0
  186. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/RulsesetQuery_UnitTest.py +0 -0
  187. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
  188. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/__snapshots__/CommunityStandards_EndToEndTest.ambr +0 -0
  189. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/__snapshots__/GitHubEnterprise_EndToEndTest.ambr +0 -0
  190. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Query_UnitTest.py +0 -0
  191. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Requirement_UnitTest.py +0 -0
  192. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/__init__.py +0 -0
  193. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
  194. {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/conftest.py +0 -0
@@ -28,3 +28,6 @@ post_generation_instructions.html
28
28
 
29
29
  # Test coverage report
30
30
  **/coverage.xml
31
+
32
+ # Documentation site
33
+ site/
@@ -0,0 +1,93 @@
1
+ Metadata-Version: 2.4
2
+ Name: RepoAuditor
3
+ Version: 0.2.84
4
+ Summary: Add your description here
5
+ Project-URL: Homepage, https://github.com/gt-sse-center/RepoAuditor
6
+ Project-URL: Documentation, https://github.com/gt-sse-center/RepoAuditor
7
+ Project-URL: Repository, https://github.com/gt-sse-center/RepoAuditor
8
+ Author-email: Scientific Software Engineering Center at Georgia Tech <sse-center@gatech.edu>
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Classifier: Operating System :: MacOS
12
+ Classifier: Operating System :: Microsoft :: Windows
13
+ Classifier: Operating System :: POSIX :: Linux
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Requires-Python: >=3.10
20
+ Requires-Dist: dbrownell-common>=0.16.0
21
+ Requires-Dist: gitpython>=3.1.44
22
+ Requires-Dist: pluggy>=1.5.0
23
+ Requires-Dist: requests>=2.32.3
24
+ Requires-Dist: typer-config[yaml]>=1.4.2
25
+ Requires-Dist: typer>=0.15.3
26
+ Description-Content-Type: text/markdown
27
+
28
+ # RepoAuditor - README
29
+
30
+ **Project:**
31
+ [![License](https://img.shields.io/github/license/gt-sse-center/RepoAuditor?color=dark-green)](https://github.com/gt-sse-center/RepoAuditor/blob/master/LICENSE)
32
+
33
+ **Package:**
34
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/repoauditor?color=dark-green)](https://pypi.org/project/repoauditor/)
35
+ [![PyPI - Version](https://img.shields.io/pypi/v/repoauditor?color=dark-green)](https://pypi.org/project/repoauditor/)
36
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/repoauditor)](https://pypistats.org/packages/repoauditor)
37
+
38
+ **Development:**
39
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
40
+ [![CI](https://github.com/gt-sse-center/RepoAuditor/actions/workflows/CICD.yml/badge.svg)](https://github.com/gt-sse-center/RepoAuditor/actions/workflows/CICD.yml)
41
+ [![Code Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/davidbrownell/2f9d770d13e3a148424f374f74d41f4b/raw/RepoAuditor_code_coverage.json)](https://github.com/gt-sse-center/RepoAuditor/actions)
42
+ [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/gt-sse-center/RepoAuditor?color=dark-green)](https://github.com/gt-sse-center/RepoAuditor/commits/main/)
43
+
44
+ <!-- Content above this delimiter will be copied to the generated README.md file. DO NOT REMOVE THIS COMMENT, as it will cause regeneration to fail. -->
45
+
46
+ ## Overview
47
+
48
+ `RepoAuditor` is a tool which audits repositories for best practices.
49
+
50
+ If you're running an open-source repository, there are many steps involved in being open-source beyond making your repository public.
51
+
52
+ In order to make your repository both friendly to maintainers and contributors, you will want to enable/disable some settings (e.g. require reviews, status checks pass), or you may be missing certains files (like `LICENSE` or `CODE_OF_CONDUCT`) that prevent adoption of your project.
53
+
54
+ `RepoAuditor` can check and audit your repository so that all the right settings and content are available to make your open-source repository high-quality, even if you are new to maintaining one.
55
+
56
+ E.g. check if various files for maintaining community standards are available:
57
+
58
+ ```shell
59
+ uvx repoauditor --include CommunityStandards \
60
+ --CommunityStandards-url https://github.com/gt-sse-center/RepoAuditor \
61
+ --verbose
62
+ ```
63
+
64
+ This will check if your open-source repository has files like a License, Code of Conduct, README, Code Owners, etc.
65
+
66
+ We have set `RepoAuditor` to have defaults which match with best practices in open-source communities, however they can all be overrided.
67
+
68
+ For more information on how to use `RepoAuditor` and its available features, please refer to the documentation below.
69
+
70
+ ## Documentation
71
+
72
+ Please refer to the documentation hosted [here](docs/index.md).
73
+
74
+ ## Development
75
+
76
+ Please visit [Contributing](https://github.com/gt-sse-center/RepoAuditor/blob/main/docs/CONTRIBUTING.md) and [Development](https://github.com/gt-sse-center/RepoAuditor/blob/docs/development.md) for information on contributing to this project.
77
+
78
+ ## Additional Information
79
+
80
+ Additional information can be found at these locations.
81
+
82
+ | Title | Document | Description |
83
+ | --- | --- | --- |
84
+ | Code of Conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Information about the norms, rules, and responsibilities we adhere to when participating in this open source community. |
85
+ | Contributing | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Information about contributing to this project. |
86
+ | Development | [DEVELOPMENT.md](docs/DEVELOPMENT.md) | Information about development activities involved in making changes to this project. |
87
+ | Governance | [GOVERNANCE.md](GOVERNANCE.md) | Information about how this project is governed. |
88
+ | Maintainers | [MAINTAINERS.md](MAINTAINERS.md) | Information about individuals who maintain this project. |
89
+ | Security | [SECURITY.md](SECURITY.md) | Information about how to privately report security issues associated with this project. |
90
+
91
+ ## License
92
+
93
+ RepoAuditor is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
@@ -0,0 +1,66 @@
1
+ # RepoAuditor - README
2
+
3
+ **Project:**
4
+ [![License](https://img.shields.io/github/license/gt-sse-center/RepoAuditor?color=dark-green)](https://github.com/gt-sse-center/RepoAuditor/blob/master/LICENSE)
5
+
6
+ **Package:**
7
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/repoauditor?color=dark-green)](https://pypi.org/project/repoauditor/)
8
+ [![PyPI - Version](https://img.shields.io/pypi/v/repoauditor?color=dark-green)](https://pypi.org/project/repoauditor/)
9
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/repoauditor)](https://pypistats.org/packages/repoauditor)
10
+
11
+ **Development:**
12
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
13
+ [![CI](https://github.com/gt-sse-center/RepoAuditor/actions/workflows/CICD.yml/badge.svg)](https://github.com/gt-sse-center/RepoAuditor/actions/workflows/CICD.yml)
14
+ [![Code Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/davidbrownell/2f9d770d13e3a148424f374f74d41f4b/raw/RepoAuditor_code_coverage.json)](https://github.com/gt-sse-center/RepoAuditor/actions)
15
+ [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/gt-sse-center/RepoAuditor?color=dark-green)](https://github.com/gt-sse-center/RepoAuditor/commits/main/)
16
+
17
+ <!-- Content above this delimiter will be copied to the generated README.md file. DO NOT REMOVE THIS COMMENT, as it will cause regeneration to fail. -->
18
+
19
+ ## Overview
20
+
21
+ `RepoAuditor` is a tool which audits repositories for best practices.
22
+
23
+ If you're running an open-source repository, there are many steps involved in being open-source beyond making your repository public.
24
+
25
+ In order to make your repository both friendly to maintainers and contributors, you will want to enable/disable some settings (e.g. require reviews, status checks pass), or you may be missing certains files (like `LICENSE` or `CODE_OF_CONDUCT`) that prevent adoption of your project.
26
+
27
+ `RepoAuditor` can check and audit your repository so that all the right settings and content are available to make your open-source repository high-quality, even if you are new to maintaining one.
28
+
29
+ E.g. check if various files for maintaining community standards are available:
30
+
31
+ ```shell
32
+ uvx repoauditor --include CommunityStandards \
33
+ --CommunityStandards-url https://github.com/gt-sse-center/RepoAuditor \
34
+ --verbose
35
+ ```
36
+
37
+ This will check if your open-source repository has files like a License, Code of Conduct, README, Code Owners, etc.
38
+
39
+ We have set `RepoAuditor` to have defaults which match with best practices in open-source communities, however they can all be overrided.
40
+
41
+ For more information on how to use `RepoAuditor` and its available features, please refer to the documentation below.
42
+
43
+ ## Documentation
44
+
45
+ Please refer to the documentation hosted [here](docs/index.md).
46
+
47
+ ## Development
48
+
49
+ Please visit [Contributing](https://github.com/gt-sse-center/RepoAuditor/blob/main/docs/CONTRIBUTING.md) and [Development](https://github.com/gt-sse-center/RepoAuditor/blob/docs/development.md) for information on contributing to this project.
50
+
51
+ ## Additional Information
52
+
53
+ Additional information can be found at these locations.
54
+
55
+ | Title | Document | Description |
56
+ | --- | --- | --- |
57
+ | Code of Conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Information about the norms, rules, and responsibilities we adhere to when participating in this open source community. |
58
+ | Contributing | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Information about contributing to this project. |
59
+ | Development | [DEVELOPMENT.md](docs/DEVELOPMENT.md) | Information about development activities involved in making changes to this project. |
60
+ | Governance | [GOVERNANCE.md](GOVERNANCE.md) | Information about how this project is governed. |
61
+ | Maintainers | [MAINTAINERS.md](MAINTAINERS.md) | Information about individuals who maintain this project. |
62
+ | Security | [SECURITY.md](SECURITY.md) | Information about how to privately report security issues associated with this project. |
63
+
64
+ ## License
65
+
66
+ RepoAuditor is licensed under the <a href="https://choosealicense.com/licenses/MIT/" target="_blank">MIT</a> license.
@@ -0,0 +1,5 @@
1
+ includes: ["GitHub", "CommunityStandards"] # Note that `includes` is plural compared to the CLI, since is accepts a list
2
+ excludes: [] # Similarly, `excludes` is plural.
3
+ GitHub-url: "https://github.com/gt-sse-center/RepoAuditor"
4
+ CommunityStandards-url: "https://github.com/gt-sse-center/RepoAuditor"
5
+ # GitHub-pat: "PAT"
@@ -4,17 +4,20 @@ Additional information is available at the following locations.
4
4
 
5
5
  | Topic | Description | Location |
6
6
  | --- | --- | --- |
7
- | Code of Conduct | How we welcome others to this community. | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) |
8
- | Development Activities | How we create software in this community. | [DEVELOPMENT.md](DEVELOPMENT.md) |
9
- | Security | How to report vulnerabilities in our software. | [SECURITY.md](SECURITY.md) |
7
+ | Code of Conduct | How we welcome others to this community. | [CODE_OF_CONDUCT.md](https://github.com/gt-sse-center/RepoAuditor/blob/main/CODE_OF_CONDUCT.md) |
8
+ | Development Activities | How we create software in this community. | [DEVELOPMENT.md](https://github.com/gt-sse-center/RepoAuditor/blob/main/DEVELOPMENT.md) |
9
+ | Security | How to report vulnerabilities in our software. | [SECURITY.md](https://github.com/gt-sse-center/RepoAuditor/blob/main/SECURITY.md) |
10
+
11
+ ## Bug Reports
10
12
 
11
- # Bug Reports
12
13
  If you experience a problem with our software, please visit [issues](https://github.com/gt-sse-center/RepoAuditor/issues) and create a `Bug report`.
13
14
 
14
- # Feature Requests
15
+ ## Feature Requests
16
+
15
17
  If you would like to suggest a new feature for our software, please visit [issues](https://github.com/gt-sse-center/RepoAuditor/issues) and create a `Feature request`.
16
18
 
17
- # Issue Labels
19
+ ## Issue Labels
20
+
18
21
  We use these labels to help us track and manage `Bug reports` and `Feature requests`.
19
22
 
20
23
  | Label | Description |
@@ -25,7 +28,8 @@ We use these labels to help us track and manage `Bug reports` and `Feature reque
25
28
  | `good first issue` | Good for newcomers. |
26
29
  | `documentation` | Improvements or additions to documentation. |
27
30
 
28
- ## General information
31
+ ## General Information
32
+
29
33
  <!-- [BEGIN] General Information -->
30
34
  For specific proposals, please provide them as [pull requests](https://github.com/coreinfrastructure/best-practices-badge/pulls) or [issues](https://github.com/coreinfrastructure/best-practices-badge/issues) via our [GitHub site](https://github.com/gt-sse-center/RepoAuditor).
31
35
  <!-- [END] General Information -->
@@ -33,6 +37,7 @@ For specific proposals, please provide them as [pull requests](https://github.co
33
37
  The [DEVELOPMENT.md](DEVELOPMENT.md) file explains how to install the program locally (highly recommended if you're going to make code changes). It also provides information useful for making changes and validating them locally before submitting a pull request.
34
38
 
35
39
  ### Pull requests and different branches recommended
40
+
36
41
  <!-- [BEGIN] Pull Requests and Branches -->
37
42
  Pull requests are preferred, since they are specific. For more about how to create a pull request, see https://help.github.com/articles/using-pull-requests/.
38
43
 
@@ -40,19 +45,22 @@ We recommend creating different branches for different (logical) changes, and cr
40
45
  <!-- [END] Pull Requests and Branches -->
41
46
 
42
47
  ### How we handle proposals
48
+
43
49
  <!-- [BEGIN] Proposals -->
44
50
  We use GitHub to track proposed changes via its [issue tracker](https://github.com/coreinfrastructure/best-practices-badge/issues) and [pull requests](https://github.com/coreinfrastructure/best-practices-badge/pulls). Specific changes are proposed using those mechanisms. Issues are assigned to an individual, who works and then marks it complete. If there are questions or objections, the conversation of that issue or pull request is used to resolve it.
45
51
  <!-- [END] Proposals -->
46
52
 
47
53
  ### We are proactive
54
+
48
55
  In general we try to be proactive to detect and eliminate mistakes and vulnerabilities as soon as possible, and to reduce their impact when they do happen. We use a defensive design and coding style to reduce the likelihood of mistakes, a variety of tools that try to detect mistakes early, and an automatic test suite with significant coverage. We also release the software as open source software so others can review it.
49
56
 
50
57
  Since early detection and impact reduction can never be perfect, we also try to detect and repair problems during deployment as quickly as possible. This is especially true for security issues; see our [security information](#vulnerability-reporting-security-issues) for more information.
51
58
 
52
59
  ## Vulnerability reporting (security issues)
60
+
53
61
  Please privately report vulnerabilities you find so we can fix them!
54
62
 
55
- See [SECURITY.md](SECURITY.md) for information on how to privately report vulnerabilities.
63
+ See [SECURITY.md](https://github.com/gt-sse-center/RepoAuditor/blob/main/SECURITY.md) for information on how to privately report vulnerabilities.
56
64
 
57
65
  ## Acknowledgements
58
66
 
@@ -1,11 +1,11 @@
1
- # DEVELOPMENT GUIDE
1
+ # Development Guide
2
2
 
3
3
  ## Fork setup
4
4
 
5
5
  | Step | Command Line | Additional Information |
6
6
  | --- | --- | --- |
7
- | 1. Fork the repository | -- | https://github.com/gt-sse-center/RepoAuditor/fork |
8
- | 2. Create a PAT for your forked repository | -- | See [PAT setup instructions](README.md#personal-access-token-pat) |
7
+ | 1. Fork the repository | -- | [Fork Link](https://github.com/gt-sse-center/RepoAuditor/fork) |
8
+ | 2. Create a PAT for your forked repository | -- | See [PAT setup instructions](PAT.md) |
9
9
  | 3. Update your forked repository settings to match RepoAuditor's defaults | -- | -- |
10
10
 
11
11
  ## Local Development
@@ -14,10 +14,10 @@
14
14
 
15
15
  | Step | Command Line | Additional Information |
16
16
  | --- | --- | --- |
17
- | 1. Clone the repository locally. | `git clone https://github.com/gt-sse-center/RepoAuditor` | https://git-scm.com/docs/git-clone |
17
+ | 1. Clone the repository locally. | `git clone https://github.com/gt-sse-center/RepoAuditor` | [git-clone docs](https://git-scm.com/docs/git-clone) |
18
18
  | 2. Install [uv](https://github.com/astral-sh/uv). | `curl -LsSf https://astral.sh/uv/install.sh \| sh` on macOS and Linux or <br/>`powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 \| iex"` on Windows | https://docs.astral.sh |
19
- | 3. Install dependencies. | `uv sync` | https://docs.astral.sh/uv/concepts/projects/sync |
20
- | 4. Install [pre-commit](https://pre-commit.com/) hooks | `uv run pre-commit install` | https://pre-commit.com/#1-install-pre-commit |
19
+ | 3. Install dependencies. | `uv sync` | [Astral uv sync docs](https://docs.astral.sh/uv/concepts/projects/sync) |
20
+ | 4. Install [pre-commit](https://pre-commit.com/) hooks | `uv run pre-commit install` | [Install pre-commit](https://pre-commit.com/#1-install-pre-commit) |
21
21
  | 5. If you wish to test against an enterprise server, add a remote named `enterprise` with the corresponding URL | E.g. `git remote add enterprise git@github.gatech.edu:sse-center/RepoAuditor.git` | |
22
22
 
23
23
  ### Setup
@@ -30,16 +30,16 @@ Please follow these steps to allow for local testing.
30
30
  - Create a PAT file as detailed in the [README](https://github.com/gt-sse-center/RepoAuditor/blob/main/README.md#personal-access-token-pat).
31
31
  - Set your forked repository as the `origin` remote (this should already be the case but it's good to verify).
32
32
 
33
- ```sh
34
- git remote add origin git@github.com:<github-username>/RepoAuditor.git
35
- ```
33
+ ```sh
34
+ git remote add origin git@github.com:<github-username>/RepoAuditor.git
35
+ ```
36
36
 
37
37
  - Update the URL in `default_config.yaml` to point to your fork.
38
38
  - You should now be able to run the following and see valid output. There will be errors, which we will tackle next.
39
39
 
40
- ```sh
41
- uv run RepoAuditor --config default_config.yaml --GitHub-pat PAT.txt
42
- ```
40
+ ```sh
41
+ uv run RepoAuditor --config default_config.yaml --GitHub-pat PAT.txt
42
+ ```
43
43
 
44
44
  #### Local Testing
45
45
 
@@ -136,6 +136,23 @@ Artifacts are signed and validated using [py-minisign](https://github.com/x13a/p
136
136
 
137
137
  To verify that an artifact is valid, visit [the latest release](https://github.com/gt-sse-center/RepoAuditor/releases/latest) and download the `.minisign` signature file that corresponds to the artifact, then run the following command, replacing `<filename>` with the name of the artifact to be verified:
138
138
 
139
- ```shell
139
+ ```sh
140
140
  uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>')"
141
- ```
141
+ ```
142
+
143
+ ### Generating Documentation
144
+
145
+ We use [MkDocs](https://www.mkdocs.org/) to generate the documentation website.
146
+ To generate the docs, please run
147
+
148
+ ```sh
149
+ uv run mkdocs --serve
150
+ ```
151
+
152
+ and go to the specified URL.
153
+
154
+ To publish the website using [GitHub pages](https://docs.github.com/en/pages), you can simply run
155
+
156
+ ```sh
157
+ uv run mkdocs gh-deploy
158
+ ```
@@ -0,0 +1,27 @@
1
+ # Personal Access Token (PAT)
2
+
3
+ The most common use case for `RepoAuditor` would be to audit a GitHub repository.
4
+ In order to allow `RepoAuditor` to read the repository, you first need to generate a Personal Access Token or **PAT**.
5
+
6
+ Please refer to the [GitHub documentation on Personal Access Tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) for details about a `Fine-grained PAT` which we will be using.
7
+
8
+ To generate the Fine-grained PAT, we perform the following steps:
9
+
10
+ 1. Go to `Settings -> Developer settings -> Personal Access Token -> Fine-grained tokens`.
11
+ 2. Click on `Generate new token`.
12
+ 3. Give the token a name and a description.
13
+ 4. Set an appropriate expiration date.
14
+ 5. Under `Repository Access`, select `All repositories`.
15
+ 6. For permissions, we need to go to `Repository permissions`.
16
+ 7. Enable the following permissions:
17
+ - Read-Write access to `Contents`.
18
+ - Read access to `Administration` and `Secret scanning alerts`.
19
+ 8. Click on `Generate token`.
20
+ 9. Copy the generated string. This is your PAT.
21
+ 10. Save the PAT to a convenient location on your machine (such as your home directory `~/`) in the file `PAT.txt`.
22
+
23
+ The path to the `PAT.txt` will be passed into `RepoAuditor`. E.g.
24
+
25
+ ```sh
26
+ uvx RepoAuditor --GitHub-pat ~/PAT.txt
27
+ ```
@@ -0,0 +1,52 @@
1
+ # Configuration File
2
+
3
+ `RepoAuditor` accepts both a set of flags as well as a configuration YAML file.
4
+
5
+ The configuration (or config) file can make usage easier by recording preferences as well as facilitating sharing of enforced requirements within an organization.
6
+ We have provided a sample configuration file called [default_config.yaml](https://github.com/gt-sse-center/RepoAuditor/blob/main/default_config.yaml), which can be used as:
7
+
8
+ ```sh
9
+ uvx RepoAuditor --config default_config.yaml
10
+ ```
11
+
12
+ ## Key Differences
13
+
14
+ There are some differences between the flags used in the CLI and the options provided in the config file.
15
+
16
+ ### Multiple Values
17
+
18
+ For example, to include multiple module on the CLI, the user would use the `--include` multiple times.
19
+
20
+ ```sh
21
+ uvx RepoAuditor --include CommunityStandards --include GitHub
22
+ ```
23
+
24
+ However, since the config file accepts a list of values, the corresponding option is `includes` (which is plural).
25
+
26
+ ```yaml
27
+ includes: ["GitHub", "CommunityStandards"]
28
+ ```
29
+
30
+ This is similarly the case for `--exclude` on the CLI and `excludes` in the config file.
31
+
32
+ ### Boolean Flags
33
+
34
+ On the CLI, the existence of a boolean flag, e.g. `--GitHub-Description-allow-empty` is sufficient to indicate that we want this setting to be enabled.
35
+
36
+ However since YAML files expect key-value pairs, in the config file, you will have to specify the same flag as:
37
+
38
+ ```yaml
39
+ GitHub-Description-allow-empty: true
40
+ ```
41
+
42
+ Similarly for the case where we wish to check a setting is turned off, we specify e.g. `--GitHub-no-MergeCommit` on the CLI, but in the config file, it would be
43
+
44
+ ```yaml
45
+ GitHub-no-MergeCommit: true
46
+ ```
47
+
48
+ Remember, to deactive a check, we have to add the `Module-Requirement` to the `excludes` list,
49
+
50
+ ```yaml
51
+ excludes: ["GitHub-MergeCommit"]
52
+ ```
@@ -0,0 +1,55 @@
1
+ # RepoAuditor
2
+
3
+ `RepoAuditor` is a handy tool which audits repositories for best practices.
4
+
5
+ It helps maintain high-quality and consistent open-source repositories even if you are new to maintaining open-source software.
6
+
7
+ ## Contents
8
+
9
+ - [Installation](#installation)
10
+ - [How to use RepoAuditor](#how-to-use)
11
+ - [Personal Access Token](PAT.md)
12
+ - [Example Usage](usage.md)
13
+ - [Config File](config_file.md)
14
+ - [Development](development)
15
+
16
+ ## Installation
17
+
18
+ We recommend using [uv](https://docs.astral.sh/uv/#uv) since it can install `RepoAuditor` as a tool via `uvx` into a sandbox environment for quick use.
19
+ This lets you directly run `RepoAuditor`.
20
+
21
+ ```sh
22
+ uvx RepoAuditor
23
+ ```
24
+
25
+ Alternatively, you can install `RepoAuditor` via `uv` or `pip`.
26
+ `uv` is preferred to `pip` since it creates and manages a virtual environment.
27
+
28
+ | Installation Method | Command |
29
+ | --- | --- |
30
+ | Via [uv](https://github.com/astral-sh/uv) | `uv add repoauditor` |
31
+ | Via [pip](https://pip.pypa.io/en/stable/) | `pip install repoauditor` |
32
+
33
+ ## How To Use
34
+
35
+ Once installed, you can invoke the following to verify if `RepoAuditor` is installed correctly:
36
+
37
+ ```sh
38
+ uvx RepoAuditor --version
39
+ ```
40
+
41
+ and you should see something like
42
+
43
+ ```sh
44
+ RepoAuditor vX.X.X
45
+ ```
46
+
47
+ To get a list of command line options, you can run
48
+
49
+ ```sh
50
+ uvx RepoAuditor --help
51
+ ```
52
+
53
+ In order to use `RepoAuditor` with GitHub, you will need a Personal Access Token (or PAT for short).
54
+
55
+ Let's go over how to [generate a PAT next](PAT.md).
@@ -0,0 +1 @@
1
+ # Troubleshooting Guide
@@ -0,0 +1,98 @@
1
+ # Usage
2
+
3
+ ## Basic Use
4
+
5
+ With a generated PAT file, you can now run `RepoAuditor` on your GitHub repository.
6
+
7
+ ```sh
8
+ uvx repoauditor --include GitHub \
9
+ --GitHub-url <url-to-repo> \
10
+ --GitHub-pat ~/PAT.txt
11
+ ```
12
+
13
+ If your repository is on an enterprise server, you can similarly generate a PAT (and save it `enterprise_PAT.txt`) and point `RepoAuditor` to the corresponding repo:
14
+
15
+ ```sh
16
+ uvx repoauditor --include GitHub \
17
+ --GitHub-url <url-to-enterprise-repo> \
18
+ --GitHub-pat ~/enterprise_PAT.txt
19
+ ```
20
+
21
+ As a general example, we will use the [python-helloworld](https://github.com/dbarnett/python-helloworld) repository.
22
+
23
+ > **NOTE** You need to fork the repository since your default PAT only has access to repos under your account.
24
+
25
+ To run `RepoAuditor`, we can enter the following in the command-line:
26
+
27
+ ```sh
28
+ uvx repoauditor --include GitHub \
29
+ --GitHub-url https://github.com/<username>/python-helloworld \
30
+ --GitHub-pat ~/PAT.txt
31
+ ```
32
+
33
+ `RepoAuditor` will generate a series of messages describing all the issues in the repository, along with the rationale behind them and the steps for resolution.
34
+
35
+ <br/>
36
+
37
+ ## Custom Settings
38
+
39
+ `RepoAuditor` tries to provide default settings and checks which are considered best practices. However, your team or organization may have different ways of doing things.
40
+ You can override the default settings by specifying the appropriate flag.
41
+
42
+ We have 3 types of flags:
43
+
44
+ 1. Boolean flags for those settings which are checked to be on by default and you wish to check are off, with the form `Module-no-Requirement` (e.g. `--GitHub-no-MergeCommit`).
45
+ 2. Conversely, boolean flags for those settings which are checked to be off by default, and you wish to check are on, denoted by the form `Module-Requirement` (e.g. `--GitHub-AllowDeletions`).
46
+ 3. Values flags take a string value to determine what value to enforce, and have the form `Module-Requirement-value` (e.g. `--GitHub-License-value "MIT License"`).
47
+
48
+ Please run `uvx repoauditor --help` to get the list of all flags available.
49
+
50
+ <br/>
51
+
52
+ ## Examples
53
+
54
+ In this section, we will look at various exampls of using `RepoAuditor`. For the sake of brevity, we will omit the `--include` and `--GitHub-url` flags, leaving the inclusion to the user.
55
+
56
+ `RepoAuditor` is designed to have sensible defaults which represent industry best practices.
57
+ For example, `RepoAuditor` by default checks that the setting `Allow rebase merging` is off. However, if you wish to check that this setting is turned on, you can run:
58
+
59
+ ```sh
60
+ uvx repoauditor --GitHub-RebaseMergeCommit
61
+ ```
62
+
63
+ Similarly, `RepoAuditor` checks if `Issues` are enabled. You can set `RepoAuditor` to check if `Issues` is disabled by specifying
64
+
65
+ ```sh
66
+ uvx repoauditor --GitHub-no-SupportIssues
67
+ ```
68
+
69
+ Finally, `RepoAuditor` by default enforces that the `MIT License` exists for the repository. If your organization requires another license (such as `GPL`), you can enforce that by specifying the license keyword such as:
70
+
71
+ ```sh
72
+ uvx repoauditor --GitHub-License-value "GNU General Public License v2.0"
73
+ ```
74
+
75
+ The types of licenses supported by GitHub can be found [here](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository#searching-github-by-license-type). Be sure to specify the full license name, e.g. `GNU General Public License v2.0`.
76
+
77
+ <br/>
78
+
79
+ ## Excluding Requirements
80
+
81
+ There is often the case you might wish to exclude a module or a specific requirement.
82
+ `RepoAuditor` has built-in support for this as well, by using the `--exclude` flag.
83
+
84
+ To exclude a requirement, you can run specify the requirement as `Module-Requirement`
85
+
86
+ ```sh
87
+ uvx repoauditor --include GitHub --exclude GitHub-RequireSignedCommitsRule
88
+ ```
89
+
90
+ The above command includes all of the requirements in the `GitHub` module except for the `RequireSignedCommitsRule` requirement.
91
+
92
+ You can similarly exclude a whole module:
93
+
94
+ ```sh
95
+ uvx repoauditor --include GitHub --exclude CommunityStandards
96
+ ```
97
+
98
+ NOTE: This way of excluding a module is redundant since any module not added via `--include` is automatically excluded.
@@ -0,0 +1,23 @@
1
+ site_name: RepoAuditor
2
+ site_description: Audits repositories for best practices.
3
+ nav:
4
+ - Home: index.md
5
+ - PAT: PAT.md
6
+ - Usage: usage.md
7
+ - Config File: config_file.md
8
+ - Development: DEVELOPMENT.md
9
+ - Contributing: CONTRIBUTING.md
10
+ - Troubleshooting: troubleshooting.md
11
+ theme:
12
+ name: material
13
+ palette:
14
+ scheme: slate
15
+ primary: teal
16
+ accent: lime
17
+
18
+
19
+ # Extensions to render emojis
20
+ markdown_extensions:
21
+ - pymdownx.emoji:
22
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
23
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
@@ -55,6 +55,7 @@ dev = [
55
55
  "pytest-cov>=6.1.1",
56
56
  "ruff>=0.11.8",
57
57
  "syrupy>=4.9.1",
58
+ "mkdocs-material>=9.6.16",
58
59
  ]
59
60
 
60
61
  [tool.hatch.version]
@@ -76,7 +76,7 @@ class Protected(Requirement):
76
76
  ) -> Requirement.EvaluateImplResult:
77
77
  is_protected = query_data["default_branch_data"].get("protected", None)
78
78
  if is_protected is None:
79
- return CreateIncompleteDataResult()
79
+ return CreateIncompleteDataResult(query_data["pat"] is not None)
80
80
 
81
81
  if requirement_args["no"]:
82
82
  expected_value = False
@@ -0,0 +1,34 @@
1
+ # -------------------------------------------------------------------------------
2
+ # |
3
+ # | Copyright (c) 2024 Scientific Software Engineering Center at Georgia Tech
4
+ # | Distributed under the MIT License.
5
+ # |
6
+ # -------------------------------------------------------------------------------
7
+ """Contains common functionality that is used across different components."""
8
+
9
+ from RepoAuditor.Requirement import EvaluateResult, Requirement
10
+
11
+
12
+ # ----------------------------------------------------------------------
13
+ def CreateIncompleteDataResult(pat_value_exists: bool) -> Requirement.EvaluateImplResult: # noqa: FBT001
14
+ """Create an incomplete data result.
15
+
16
+ Checks if the PAT value is `None` to generate additional message info.
17
+
18
+ Args:
19
+ pat_value_exists (bool): The value of the Personal Access Token.
20
+
21
+ Returns:
22
+ Requirement.EvaluateImplResult: A warning result notifying the user of an incomplete result.
23
+
24
+ """
25
+ error_message = "Incomplete data was encountered."
26
+ if pat_value_exists:
27
+ error_message += "\nPlease update the permissions of the GitHub PAT."
28
+ else:
29
+ error_message += "\nGitHub PAT was not provided. Please provide the PAT."
30
+
31
+ return Requirement.EvaluateImplResult(
32
+ EvaluateResult.Warning,
33
+ error_message,
34
+ )
@@ -103,7 +103,7 @@ class EnableRequirementImpl(Requirement):
103
103
  )
104
104
 
105
105
  if self.missing_value_is_warning:
106
- return CreateIncompleteDataResult()
106
+ return CreateIncompleteDataResult(query_data["pat"] is not None)
107
107
 
108
108
  return Requirement.EvaluateImplResult(EvaluateResult.DoesNotApply, None)
109
109
 
@@ -90,7 +90,7 @@ class ValueRequirementImpl(Requirement):
90
90
  result = self.get_configuration_value_func(query_data)
91
91
  if result is None:
92
92
  if self.missing_value_is_warning:
93
- return CreateIncompleteDataResult()
93
+ return CreateIncompleteDataResult(query_data["pat"] is not None)
94
94
 
95
95
  return Requirement.EvaluateImplResult(EvaluateResult.DoesNotApply, None)
96
96