Skip to content

Commit 97a03c3

Browse files
mchammer01lecoursenisaacmbrown
authored
Secret scanning metadata checks in security configurations, enabled for repos with validity [public preview] (#59312)
Co-authored-by: Laura Coursen <lecoursen@github.com> Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com>
1 parent ddc3730 commit 97a03c3

File tree

8 files changed

+87
-30
lines changed

8 files changed

+87
-30
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: About validity checks
3+
shortTitle: Validity checks
4+
intro: 'Validity checks and extended metadata checks help you prioritize remediation of exposed credentials that pose immediate security risks.'
5+
product: |
6+
{% data reusables.gated-features.secret-scanning %}{% ifversion secret-risk-assessment %}
7+
8+
{% data variables.secret-scanning.secret-risk-assessment-cta-product %}{% endif %}
9+
contentType: concepts
10+
topics:
11+
- Secret scanning
12+
- Secret Protection
13+
versions:
14+
fpt: '*'
15+
ghec: '*'
16+
---
17+
18+
## About validity checks
19+
20+
Validity checks, a feature of {% data variables.product.prodname_secret_scanning %}, verify whether a detected secret is still active and could be exploited. This helps you prioritize remediation by focusing first on secrets that are confirmed to be active.
21+
22+
You can enable automatic validity checks for detected secrets. Once enabled, {% data variables.product.company_short %} will periodically check the validity of a detected credential by sending the secret to the issuer and testing it against APIs provided by that service. Validity checks are available for secrets from many service providers, and support continues to expand as {% data variables.product.company_short %} partners with additional services.
23+
24+
{% data variables.product.company_short %} prioritizes privacy when checking the validity of the credential. We typically make GET requests, pick the least intrusive endpoints, and select endpoints that don't return any personal information.
25+
26+
{% data variables.product.github %} displays the validation status of the secret in the alert view, so you can see if the secret is `active`, `inactive`, or if the validation status is `unknown`. You can optionally perform an "on-demand" validity check for the secret in the alert view.
27+
28+
## About extended metadata checks
29+
30+
{% data reusables.security-configurations.extended-metadata-checks %}
31+
32+
Extended metadata checks provide **additional contextual information** about detected secrets. They are often referred to as **analyzers** in other tools.
33+
34+
You can enable extended metadata checks if validity checks are enabled. Then, you'll get information that helps you:
35+
36+
* **Gain deeper insight into detected secrets**: Know who owns a secret.
37+
* **Prioritize remediation**: Understand the scope and impact of each exposed secret.
38+
* **Improve incident response**: Quickly identify responsible teams or individuals when a secret is leaked.
39+
* **Enhance compliance**: Ensure secrets align with your organization’s governance and security policies.
40+
* **Reduce false positives**: Use additional context to determine if a detection requires action.
41+
42+
The specific metadata available depends on what the service provider shares with {% data variables.product.github %}. Not all secret types support extended metadata checks. For more information, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#verifying-token-metadata).
43+
44+
## Getting started with validity and extended metadata checks
45+
46+
{% data reusables.secret-scanning.extended-metadata-checks-note %}
47+
48+
You can enable validity and extended metadata checks at the repository, organization, or enterprise level to help prioritize which exposed credentials pose the most immediate security risks.
49+
50+
For large organizations, we recommend using **security configurations** to enable these features at the organization or enterprise level. Security configurations allow you to centrally manage {% data variables.product.prodname_secret_scanning %} settings and apply them consistently across many repositories.
51+
52+
To get started:
53+
54+
* For repositories, see [AUTOTITLE](/code-security/how-tos/secure-your-secrets/customize-leak-detection/enabling-validity-checks-for-your-repository)
55+
* For an organization, see [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/creating-a-custom-security-configuration)
56+
* For an enterprise, see [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/creating-a-custom-security-configuration-for-your-enterprise)

content/code-security/concepts/secret-security/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ children:
1515
- /about-push-protection
1616
- /about-secret-security-with-github
1717
- /about-alerts
18+
- /about-validity-checks
1819
- /about-delegated-bypass-for-push-protection
1920
- /about-bypass-requests-for-push-protection
2021
- /about-secret-scanning-for-partners

content/code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/creating-a-custom-security-configuration-for-your-enterprise.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ When creating a security configuration, keep in mind that:
5656
1. To help identify your {% data variables.product.prodname_custom_security_configuration %} and clarify its purpose on the "{% data variables.product.prodname_security_configurations_caps %}" page, name your configuration and create a description.
5757
1. Optionally, enable "{% data variables.product.prodname_secret_protection %}", a paid feature for private {% ifversion ghec %}and internal {% endif %} repositories. Enabling {% data variables.product.prodname_secret_protection %} enables alerts for {% data variables.product.prodname_secret_scanning %}. In addition, you can choose whether to enable, disable, or keep the existing settings for the following {% data variables.product.prodname_secret_scanning %} features:
5858
{% ifversion secret-scanning-validity-check-partner-patterns %}
59-
* **Validity checks**. To learn more about validity checks for partner patterns, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#checking-a-secrets-validity).{% endif %}{% ifversion org-npp-enablement-security-configurations %}
59+
* **Validity checks**. To learn more about validity checks for partner patterns, see [AUTOTITLE](/code-security/concepts/secret-security/about-validity-checks) and [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#checking-a-secrets-validity).{% endif %}{% ifversion fpt or ghec %}
60+
* **Extended metadata**. To learn more about extended metadata checks, see [About extended metadata checks](/code-security/concepts/secret-security/about-validity-checks#about-extended-metadata-checks) and [AUTOTITLE](/code-security/tutorials/remediate-leaked-secrets/evaluating-alerts#reviewing-extended-metadata-for-a-token).
61+
> [!NOTE]
62+
> You can only enable extended metadata checks if validity checks are enabled.{% endif %}{% ifversion org-npp-enablement-security-configurations %}
6063
* **Non-provider patterns**. To learn more about scanning for non-provider patterns, see [AUTOTITLE](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#non-provider-patterns) and [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/viewing-alerts).{% endif %}{% ifversion secret-scanning-ai-generic-secret-detection %}
6164
* **Scan for generic passwords**. To learn more, see [AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-generic-secrets).{% endif %}
6265
* **Push protection**. To learn about push protection, see [AUTOTITLE](/code-security/secret-scanning/introduction/about-push-protection).{% ifversion push-protection-delegated-bypass-configurations-enterprise %}

content/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/creating-a-custom-security-configuration.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ With {% data variables.product.prodname_custom_security_configurations %}, you c
4545
1. To help identify your {% data variables.product.prodname_custom_security_configuration %} and clarify its purpose on the "{% data variables.product.prodname_security_configurations_caps %}" page, name your configuration and create a description.
4646
1. Optionally, enable "{% data variables.product.prodname_secret_protection %}", a paid feature for private {% ifversion ghec %}and internal {% endif %} repositories. Enabling {% data variables.product.prodname_secret_protection %} enables alerts for {% data variables.product.prodname_secret_scanning %}. In addition, you can choose whether to enable, disable, or keep the existing settings for the following {% data variables.product.prodname_secret_scanning %} features:
4747
{% ifversion secret-scanning-validity-check-partner-patterns %}
48-
* **Validity checks**. To learn more about validity checks for partner patterns, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#checking-a-secrets-validity).{% endif %}{% ifversion org-npp-enablement-security-configurations %}
48+
* **Validity checks**. To learn more about validity checks for partner patterns, see [AUTOTITLE](/code-security/concepts/secret-security/about-validity-checks) and [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#checking-a-secrets-validity).{% endif %}{% ifversion fpt or ghec %}
49+
* **Extended metadata**. To learn more about extended metadata checks, see [About extended metadata checks](/code-security/concepts/secret-security/about-validity-checks#about-extended-metadata-checks) and [AUTOTITLE](/code-security/tutorials/remediate-leaked-secrets/evaluating-alerts#reviewing-extended-metadata-for-a-token).
50+
> [!NOTE]
51+
> You can only enable extended metadata checks if validity checks are enabled.{% endif %}{% ifversion org-npp-enablement-security-configurations %}
4952
* **Non-provider patterns**. To learn more about scanning for non-provider patterns, see [AUTOTITLE](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#non-provider-patterns) and [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/viewing-alerts).{% endif %}{% ifversion secret-scanning-ai-generic-secret-detection %}
5053
* **Scan for generic passwords**. To learn more, see [AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-generic-secrets).{% endif %}
5154
* **Push protection**. To learn about push protection, see [AUTOTITLE](/code-security/secret-scanning/introduction/about-push-protection).{% ifversion push-protection-delegated-bypass-configurations %}

content/code-security/how-tos/secure-your-secrets/customize-leak-detection/enabling-extended-metadata-checks-for-your-repository.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,31 @@ redirect_from:
1717

1818
{% data reusables.secret-scanning.metadata-checks-public-preview %}
1919

20-
## About extended metadata checks
20+
{% data reusables.secret-scanning.extended-metadata-checks-note %}
2121

22-
Extended metadata checks, often referred to as analyzers in other tools, are a {% data variables.product.prodname_secret_scanning %} feature that you can enable for supported tokens.
22+
This article shows how you can enable extended metadata checks for individual repositories through repository settings. Alternatively, you can enable them at scale using **security configurations** at the organization or enterprise level. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/creating-a-custom-security-configuration) or [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/creating-a-custom-security-configuration-for-your-enterprise).
2323

24-
When you enable extended metadata checks for tokens, {% data variables.product.prodname_secret_scanning %} provides you with additional information about detected secrets, such as ownership and contact details. This information helps you:
24+
## Prerequisites
2525

26-
* **Gain deeper insight into detected secrets**: Know who owns a secret.
27-
* **Improve incident response**: Quickly identify responsible teams or individuals when a secret is leaked.
28-
* **Enhance compliance**: Ensure secrets align with your organization’s governance and security policies.
26+
Before enabling metadata checks, you need to ensure that validity checks are enabled for the repository. See [AUTOTITLE](/code-security/secret-scanning/enabling-secret-scanning-features/enabling-validity-checks-for-your-repository#enabling-validity-checks).
2927

30-
This information appears on {% data variables.product.github %}, in the page for the related secret scanning alert, helping you prioritize and remediate exposures more efficiently.
28+
## Enabling extended metadata checks
3129

32-
Metadata availability varies depending on the secret type. For more information, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#verifying-token-metadata).
30+
{% ifversion fpt or ghec %}
3331

34-
## Enabling extended metadata checks
32+
{% data reusables.repositories.navigate-to-repo %}
33+
{% data reusables.repositories.sidebar-settings %}
34+
{% data reusables.repositories.navigate-to-code-security-and-analysis %}{% ifversion ghas-products %}
35+
1. Under "{% data variables.product.prodname_secret_protection %}" and "Validity checks", to the right of "Extended metadata", click **Enable**.{% else %}
36+
1. Under "{% data variables.product.prodname_secret_protection %}" and "Validity checks", to the right of "Extended metadata", click **Enable**.{% endif %}
3537

36-
Before enabling metadata checks, you need to ensure that validity checks are enabled for the repository. See [AUTOTITLE](/code-security/secret-scanning/enabling-secret-scanning-features/enabling-validity-checks-for-your-repository#enabling-validity-checks).
38+
{% elsif ghes %}
3739

3840
{% data reusables.secret-scanning.validity-check-enablement %}
3941
1. Under "{% data variables.product.prodname_secret_protection %}", to the right of "Extended metadata", click **Enable**.
4042

43+
{% endif %}
44+
4145
## Further reading
4246

4347
* [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning)

content/code-security/how-tos/secure-your-secrets/customize-leak-detection/enabling-validity-checks-for-your-repository.md

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,15 @@ redirect_from:
1414
- /code-security/secret-scanning/enabling-secret-scanning-features/enabling-validity-checks-for-your-repository
1515
---
1616

17-
## About validity checks
18-
19-
You can enable validity checks for secrets identified as service provider tokens for your repository. Once enabled, {% data variables.product.company_short %} will periodically check the validity of a detected credential by sending the secret directly to the provider, as part of {% data variables.product.company_short %}'s secret scanning partnership program. {% data reusables.secret-scanning.partner-program-link %}
20-
21-
{% data variables.product.company_short %} displays the validation status of the secret in the alert view, so you can see if the secret is `active`, `inactive`, or if the validation status is `unknown`. You can optionally perform an "on-demand" validity check for the secret in the alert view.
22-
23-
You can additionally choose to enable validity checks for partner patterns. Once enabled, {% data variables.product.company_short %} will periodically check the validity of a detected credential by sending the secret directly to the provider, as part of {% data variables.product.company_short %}'s formal secret scanning partnership program. {% data variables.product.company_short %} typically makes GET requests to check the validity of the credential, picks the least intrusive endpoints, and selects endpoints that don't return any personal information.
24-
25-
{% data variables.product.company_short %} displays the validation status of the secret in the alert view.
26-
27-
You can filter by validation status on the alerts page, to help you prioritize which alerts you need to take action on.
28-
29-
> [!NOTE]
30-
> {% data variables.product.company_short %} typically makes GET requests to check the validity of the credential, picks the least intrusive endpoints, and selects endpoints that don't return any personal information.
31-
32-
For more information on using validity checks, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/evaluating-alerts#checking-a-secrets-validity).
17+
You can enable validity checks for individual repositories through repository settings. Validity checks verify whether detected secrets are still active, helping you prioritize remediation efforts. For information about what validity checks are and how they work, see [AUTOTITLE](/code-security/concepts/secret-security/about-validity-checks).
3318

3419
## Enabling validity checks
3520

36-
>[!NOTE] You can also use the REST API to enable validity checks for partner patterns for your repository. For more information, see [AUTOTITLE](/rest/repos/repos#update-a-repository).
37-
3821
{% data reusables.secret-scanning.validity-check-enablement %}
3922
1. Scroll to the bottom of the page and click **Save changes**.
4023

24+
>[!NOTE] You can also use the REST API to enable validity checks for partner patterns for your repository. For more information, see [AUTOTITLE](/rest/repos/repos#update-a-repository).
25+
4126
Alternatively, organization owners and enterprise administrators can enable the feature for all repositories in the organization or enterprise. For more information on enabling at the organization-level, see [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/creating-a-custom-security-configuration).
4227
For more information on enabling at the enterprise-level, see [AUTOTITLE](/admin/managing-code-security/securing-your-enterprise/creating-a-custom-security-configuration-for-your-enterprise).
4328

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- expires 2026-03-28 -->
2+
<!-- To check on whether this can be deleted or not, see the PM in ref: 20867 -->
3+
> [!NOTE]
4+
> Starting on February 18, 2026, {% data variables.product.github %} will automatically enable extended metadata checks for repositories that have validity checks enabled. For repositories managed by security configurations, {% data variables.product.github %} will update those configurations and apply the feature to attached repositories. This is a one-time transition to help organizations benefit from enhanced metadata without manual configuration.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
> [!NOTE] Extended metadata checks in security configurations is currently in public preview and subject to change.

0 commit comments

Comments
 (0)