This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Recommendations

All best-practice recommendations evaluated by GitHub Quick Review (ghqr)

    GitHub Quick Review (ghqr) evaluates your GitHub resources against the following best-practice recommendations. Each recommendation has a stable ID, scope, category, and severity level.

    Recommendations are grouped by scope:

    • repository - Evaluated against each scanned repository
    • organization - Evaluated against each scanned organization
    • enterprise - Evaluated against a GitHub Enterprise Cloud tenant
    • ghes - Evaluated against a GitHub Enterprise Server appliance

    Severity levels range from critical (immediate risk) to info (informational observation). See the Overview for a full description of severity levels.

    IDScopeCategorySeverityTitle
    ent-alert-001enterprisedependenciescriticalCritical Dependabot alerts open across enterprise
    ent-alert-002enterprisedependencieshighHigh-severity Dependabot alerts open across enterprise
    ent-alert-003enterprisesecurityhighCode scanning alerts open across enterprise
    ent-alert-004enterprisesecuritycriticalSecret scanning alerts open across enterprise
    ent-budget-001enterprisebudgetcriticalNo billing budgets configured
    ent-budget-002enterprisebudgethighNo budgets have alerting enabled
    ent-budget-003enterprisebudgetmediumBudgets without usage prevention when exceeded
    ent-ghas-001enterprisesecurityhighGitHub Advanced Security not enabled at enterprise level
    ent-ghas-002enterprisesecurityhighSecret scanning not enabled as enterprise default
    ent-ghas-003enterprisesecurityhighSecret scanning push protection not enabled as enterprise default
    ent-ghas-004enterprisedependencieshighDependabot alerts not enabled as enterprise default
    ent-ghas-005enterprisedependenciesmediumDependabot security updates not enabled as enterprise default
    ent-ghas-006enterprisedependenciesmediumDependency graph not enabled as enterprise default
    ent-ghas-007enterprisesecuritylowSecret scanning for non-provider patterns not enabled as enterprise default
    ent-log-001enterprisesecuritycriticalSuspicious audit log events detected
    ent-log-002enterprisesecurityhighAudit log streaming configuration cannot be verified
    ghes-actions-001ghesactionsmediumGitHub Actions is not enabled on the GHES instance
    ghes-actions-002ghesactionsinfoGitHub Actions is enabled on the GHES instance
    ghes-actions-003ghesactionsinfoGitHub Actions status could not be confirmed on this GHES instance
    ghes-audit-001ghessecuritycriticalSuspicious audit log events detected
    ghes-audit-002ghessecurityinfoNo suspicious audit log events detected
    ghes-auth-001ghesghes_authenticationhighPassword authentication is enabled on the GHES instance
    ghes-auth-002ghesghes_authenticationcriticalGHES is using built-in authentication instead of an external identity provider
    ghes-auth-003ghesghes_authenticationinfoGHES authentication mode observed
    ghes-auth-004ghesghes_authenticationhighOpen signup is enabled on the GHES instance
    ghes-auth-005ghesghes_authenticationmediumHigh percentage of GHES users are suspended
    ghes-infra-001ghesghes_infrastructuremediumAdministrative SSH access is enabled on the GHES instance
    ghes-infra-002ghesghes_infrastructureinfoGHES management settings could not be read; configuration checks were skipped
    ghes-infra-003ghessecurityhighAudit log forwarding configuration cannot be verified automatically
    ghes-infra-004ghesghes_infrastructurehighGHES backup configuration cannot be verified automatically
    ghes-infra-005ghesghes_infrastructuremediumHigh availability (HA) replica configuration cannot be verified automatically
    ghes-infra-006ghessecurityhighGHES signing key rotation status cannot be verified automatically
    ghes-license-001ghesghes_licensehighGHES license is expiring soon
    ghes-license-002ghesghes_licensehighGHES license seat utilisation is high
    ghes-license-003ghesghes_licenseinfoGHES license seat utilisation summary
    ghes-license-004ghesghes_licenseinfoGHES license is unlimited
    ghes-license-005ghesghes_licensecriticalGHES license expires within 30 days
    ghes-net-001ghesghes_networkingcriticalSubdomain isolation is not enabled
    ghes-net-002ghesghes_networkingcriticalPrivate mode is disabled
    ghes-net-003ghesghes_networkingmediumPublic GitHub Pages are enabled on the GHES instance
    ghes-net-004ghesghes_networkingcriticalGitHub Pages is enabled while subdomain isolation is disabled
    ghes-sec-001ghessecurityhighGitHub Advanced Security (GHAS) is not enabled on the GHES instance
    ghes-sec-002ghessecurityhighSecret scanning is not enabled on the GHES instance
    ghes-sec-003ghessecurityinfoSecret scanning status could not be confirmed on this GHES instance
    ghes-sec-004ghessecurityhighSecret scanning push protection is not enabled
    ghes-sec-005ghessecurityhighCode scanning is not enabled on the GHES instance
    ghes-sec-006ghessecurityinfoCode scanning status could not be confirmed on this GHES instance
    ghes-sec-007ghesdependenciescriticalCritical Dependabot alerts open across the GHES instance
    ghes-sec-008ghesdependencieshighHigh-severity Dependabot alerts open across the GHES instance
    ghes-sec-009ghessecurityhighCode scanning alerts open across the GHES instance
    ghes-sec-010ghessecuritycriticalSecret scanning alerts open across the GHES instance
    ghes-sec-011ghesdependencieshighDependabot alerts are not enabled on the GHES instance
    ghes-sec-012ghesdependenciesinfoDependabot alerts status could not be confirmed on this GHES instance
    ghes-sec-013ghesdependenciesmediumDependabot security updates are not enabled on the GHES instance
    ghes-sec-014ghesdependenciesinfoDependabot alerts API could not be confirmed on this GHES instance
    ghes-sec-015ghessecurityinfoCode scanning alerts API could not be confirmed on this GHES instance
    ghes-sec-016ghessecurityinfoSecret scanning alerts API could not be confirmed on this GHES instance
    ghes-server-001ghesghes_serverinfoGHES instance version detected
    ghes-server-002ghesghes_serverinfoGHES version is within the supported release window
    ghes-server-003ghesghes_serverhighGHES version is no longer in support
    ghes-server-004ghesghes_servermediumGHES version string could not be parsed
    ghes-server-005ghesghes_servermediumGHES server version could not be determined
    ghes-server-006ghesghes_serverhighGHES instance is currently in maintenance mode
    ghes-stats-001ghesghes_serverinfoGHES user population summary
    ghes-stats-002ghesghes_serverinfoGHES organization summary
    ghes-stats-003ghesghes_serverinfoGHES repository summary
    ghes-stats-004ghesghes_serverlowDisabled organisations present on the GHES instance
    ghes-stats-005ghesaccess_controlhighHigh number of site administrators on the GHES instance
    org-act-001organizationactionshighDefault GITHUB_TOKEN permission is write
    org-act-002organizationactionshighGitHub Actions allows all third-party actions
    org-act-003organizationactionslowActions restricted to local repositories only
    org-alert-001organizationdependenciescriticalCritical Dependabot alerts open across organization
    org-alert-002organizationdependencieshighHigh-severity Dependabot alerts open across organization
    org-alert-003organizationdependenciesmediumOpen Dependabot alerts across organization
    org-alert-004organizationsecurityhighCode scanning alerts open across organization
    org-alert-005organizationsecuritycriticalSecret scanning alerts open across organization
    org-cop-001organizationcopilot_costmediumCopilot seats assigned to all organization members
    org-cop-002organizationcopilot_securityhighCopilot allowed to suggest code matching public repositories
    org-cop-003organizationcopilot_costmediumHigh percentage of inactive Copilot seats
    org-def-001organizationdependencieshighDependabot alerts not enabled by default for new repositories
    org-def-002organizationdependenciesmediumDependabot security updates not enabled by default for new repositories
    org-def-003organizationdependenciesmediumDependency graph not enabled by default for new repositories
    org-def-004organizationsecurityhighSecret scanning not enabled by default for new repositories
    org-def-005organizationsecurityhighSecret scanning push protection not enabled by default for new repositories
    org-def-006organizationsecuritymediumGitHub Advanced Security not enabled by default for new repositories
    org-sec-001organizationsecurityhighTwo-factor authentication not required
    org-sec-002organizationsecuritymediumWeb commit signoff not required
    org-sec-003organizationaccess_controlhighDefault repository permission set to admin
    org-sec-004organizationaccess_controlmediumMembers can create public repositories
    org-sec-005organizationaccess_controlmediumNo security manager team assigned
    org-sec-006organizationsecurityinfoEMU enabled: two-factor authentication is controlled by your identity provider
    repo-acc-001repositoryaccess_controlhighExcessive admin collaborators
    repo-acc-002repositoryaccess_controlmediumDirect collaborators instead of teams
    repo-acc-003repositorysecurityhighDeploy keys with write access
    repo-acc-004repositorysecuritymediumUnverified deploy keys
    repo-acc-005repositorysecuritymediumDeploy keys present — consider GitHub Apps or OIDC
    repo-bp-001repositorybranch_protectioncriticalNo branch protection configured on default branch
    repo-bp-002repositorybranch_protectioncriticalNo approving reviews required before merge
    repo-bp-003repositorybranch_protectionmediumOnly 1 approving review required
    repo-bp-004repositorybranch_protectionhighStale reviews not dismissed on new commits
    repo-bp-005repositorybranch_protectionmediumCode owner review not required
    repo-bp-006repositorybranch_protectioncriticalPull request reviews not configured
    repo-bp-007repositorybranch_protectionhighStrict status checks not enabled
    repo-bp-008repositorybranch_protectionhighNo specific status checks required
    repo-bp-009repositorybranch_protectionhighNo required status checks configured
    repo-bp-010repositorybranch_protectioncriticalForce pushes allowed on protected branch
    repo-bp-011repositorybranch_protectionhighBranch deletion allowed on protected branch
    repo-bp-012repositorybranch_protectionmediumSigned commits not required
    repo-bp-013repositorybranch_protectionlowLinear history not required
    repo-bp-014repositorybranch_protectioninfoBranch protected by repository rulesets (not legacy branch protection)
    repo-comm-001repositorycommunityinfoGitHub Discussions not enabled
    repo-feat-001repositoryfeatureslowIssues and Discussions both disabled
    repo-feat-002repositorymaintenancelowAuto-delete branches on merge not enabled
    repo-meta-001repositorycommunitymediumRepository has no description
    repo-meta-002repositorycommunitylowRepository has no topics
    repo-meta-003repositorymaintenancelowRepository appears dormant but is not archived
    repo-sec-001repositorysecurityhighDependabot alerts not enabled
    repo-sec-002repositorysecuritycriticalCritical Dependabot alerts open
    repo-sec-003repositorysecurityhighHigh-severity Dependabot alerts open
    repo-sec-004repositorysecuritylowNo SECURITY.md file found
    repo-sec-005repositoryaccess_controlmediumNo CODEOWNERS file found
    repo-sec-006repositorysecuritymediumDependabot alerts enabled but no dependabot.yml found
    repo-sec-007repositorysecurityhighDependabot not configured
    repo-sec-008repositorysecurityhighCode scanning (CodeQL) not configured
    repo-sec-009repositorysecurityinfoNo custom CodeQL configuration file