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.
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.gitignore +3 -0
- repoauditor-0.2.84/PKG-INFO +93 -0
- repoauditor-0.2.84/README.md +66 -0
- repoauditor-0.2.84/default_config.yaml +5 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84/docs}/CONTRIBUTING.md +16 -8
- {repoauditor-0.2.82 → repoauditor-0.2.84/docs}/DEVELOPMENT.md +31 -14
- repoauditor-0.2.84/docs/PAT.md +27 -0
- repoauditor-0.2.84/docs/config_file.md +52 -0
- repoauditor-0.2.84/docs/index.md +55 -0
- repoauditor-0.2.84/docs/troubleshooting.md +1 -0
- repoauditor-0.2.84/docs/usage.md +98 -0
- repoauditor-0.2.84/mkdocs.yml +23 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/pyproject.toml +1 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/Protected.py +1 -1
- repoauditor-0.2.84/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +34 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRequirementImpl.py +1 -1
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/ValueRequirementImpl.py +1 -1
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Private.py +1 -1
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/__init__.py +1 -1
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards_EndToEndTest.py +0 -22
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals_UnitTest.py +0 -13
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/EnsureStatusChecks_UnitTest.py +0 -13
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush_UnitTest.py +0 -13
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireApprovals_UnitTest.py +0 -13
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireCodeOwnerReview_UnitTest.py +0 -13
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionRequirements/RequireUpToDateBranches_UnitTest.py +8 -14
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/DefaultBranchQueryRequirements/Protected_UnitTest.py +0 -10
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/DependabotSecurityUpdates_UnitTest.py +0 -14
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/Description_UnitTest.py +0 -10
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/License_UnitTest.py +0 -12
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/MergeCommitMessage_UnitTest.py +0 -11
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/Private_UnitTest.py +0 -10
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanningPushProtection_UnitTest.py +0 -14
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/SecretScanning_UnitTest.py +0 -14
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQueryRequirements/SquashMergeCommitMessage_UnitTest.py +0 -11
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ValueRequrementImpl_UnitTest.py +1 -1
- repoauditor-0.2.84/tests/Plugins/GitHubModule/fixtures.py +77 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHub_EndToEndTest.py +2 -28
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/__snapshots__/GitHub_EndToEndTest.ambr +22 -22
- repoauditor-0.2.84/tests/Plugins/conftest.py +59 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/utilities.py +2 -1
- {repoauditor-0.2.82 → repoauditor-0.2.84}/uv.lock +290 -0
- repoauditor-0.2.82/PKG-INFO +0 -210
- repoauditor-0.2.82/README.md +0 -183
- repoauditor-0.2.82/default_config.yaml +0 -4
- repoauditor-0.2.82/src/RepoAuditor/Plugins/GitHub/Impl/Common.py +0 -18
- repoauditor-0.2.82/tests/Plugins/GitHubModule/fixtures.py +0 -28
- repoauditor-0.2.82/tests/Plugins/conftest.py +0 -20
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.copier-answers.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/CODEOWNERS +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/actions/release_impl/action.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/pull_request_template.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/release_sources.yaml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/CICD.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/CICD_impl.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/EndToEnd.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.github/workflows/codeql.yml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.pre-commit-config.yaml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/.python-version +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/CODE_OF_CONDUCT.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/GOVERNANCE.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/LICENSE +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/MAINTAINERS.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/SECURITY.md +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/minisign_key.pub +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/AutoGitSemVer.yaml +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/CommandLineProcessor.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Display.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/EntryPoint.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/ExecuteModules.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Impl/ParallelSequentialProcessor.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Impl/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Module.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugin.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/CommunityStandardsQuery.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Impl/ExistsRequirementImpl.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Impl/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Module.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOfConduct.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/CodeOwners.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/Contributing.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/IssueTemplates.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/LicenseFile.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/PullRequestTemplates.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/ReadMe.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/SecurityPolicy.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/Requirements/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandards/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/CommunityStandardsPlugin.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionQuery.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowDeletions.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/AllowMainlineForcePushes.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DismissStalePullRequestApprovals.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/DoNotAllowBypassSettings.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/EnsureStatusChecks.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/ClassicValueRequirementImpl.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovalMostRecentPush.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireApprovals.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireCodeOwnerReview.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireConversationResolution.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireLinearHistory.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireStatusChecksToPass.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/RequireUpToDateBranches.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/ClassicBranchProtectionRequirements/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/DefaultBranchQuery.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/DefaultBranchRequirements/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/EnableRulesetRequirementImpl.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Impl/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/Module.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetQuery.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/AllowMainlineForcePushes.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/DismissStalePullRequestApprovals.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/EnsureStatusChecks.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireApprovalMostRecentPush.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireApprovals.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireCodeOwnerReview.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireCodeScanningResults.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireConversationResolution.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireLinearHistory.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequirePullRequests.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSignedCommits.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireStatusChecksToPass.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireSuccessfulDeployments.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RequireUpToDateBranches.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RestrictCreations.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RestrictDeletions.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/RestrictUpdates.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/RulesetRequirements/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardQuery.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/AutoMerge.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DefaultBranch.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DeleteHeadBranches.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/DependabotSecurityUpdates.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Description.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardEnableRequirementImpl.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/StandardValueRequirementImpl.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/Impl/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/License.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommit.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/MergeCommitMessage.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/RebaseMergeCommit.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanning.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SecretScanningPushProtection.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashCommitMerge.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SquashMergeCommitMessage.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SuggestUpdatingPullRequestBranches.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportDiscussions.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportIssues.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportProjects.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/SupportWikis.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/TemplateRepository.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/WebCommitSignoff.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/StandardRequirements/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHub/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHubBase/Module.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHubBase/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/GitHubPlugin.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Plugins/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Query.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/Requirement.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/src/RepoAuditor/py.typed +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/CommandLineProcessor_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/EntryPoint_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/ExecuteModules_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Module_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugin_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards/CommunityStandardsQuery_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards/ExistsRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/CommunityStandards/GitHubCommunityStandards_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubEnterprise_EndToEndTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicBranchProtectionQuery_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/ClassicValueRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/DefaultBranchQuery_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/EnableRulesetRequirementImpl_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/GitHubModule_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/GitHubSession_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/RulesetRequirements_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/RulsesetQuery_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/GitHubModule/StandardQuery_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/__snapshots__/CommunityStandards_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Plugins/__snapshots__/GitHubEnterprise_EndToEndTest.ambr +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Query_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/Requirement_UnitTest.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/__init__.py +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/__snapshots__/ExecuteModules_UnitTest.ambr +0 -0
- {repoauditor-0.2.82 → repoauditor-0.2.84}/tests/conftest.py +0 -0
|
@@ -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
|
+
[](https://github.com/gt-sse-center/RepoAuditor/blob/master/LICENSE)
|
|
32
|
+
|
|
33
|
+
**Package:**
|
|
34
|
+
[](https://pypi.org/project/repoauditor/)
|
|
35
|
+
[](https://pypi.org/project/repoauditor/)
|
|
36
|
+
[](https://pypistats.org/packages/repoauditor)
|
|
37
|
+
|
|
38
|
+
**Development:**
|
|
39
|
+
[](https://github.com/astral-sh/uv)
|
|
40
|
+
[](https://github.com/gt-sse-center/RepoAuditor/actions/workflows/CICD.yml)
|
|
41
|
+
[](https://github.com/gt-sse-center/RepoAuditor/actions)
|
|
42
|
+
[](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
|
+
[](https://github.com/gt-sse-center/RepoAuditor/blob/master/LICENSE)
|
|
5
|
+
|
|
6
|
+
**Package:**
|
|
7
|
+
[](https://pypi.org/project/repoauditor/)
|
|
8
|
+
[](https://pypi.org/project/repoauditor/)
|
|
9
|
+
[](https://pypistats.org/packages/repoauditor)
|
|
10
|
+
|
|
11
|
+
**Development:**
|
|
12
|
+
[](https://github.com/astral-sh/uv)
|
|
13
|
+
[](https://github.com/gt-sse-center/RepoAuditor/actions/workflows/CICD.yml)
|
|
14
|
+
[](https://github.com/gt-sse-center/RepoAuditor/actions)
|
|
15
|
+
[](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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
#
|
|
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](
|
|
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
|
-
|
|
34
|
-
|
|
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
|
-
|
|
41
|
-
|
|
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
|
-
```
|
|
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
|
|
@@ -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
|
|