Skip to content

Commit a30743d

Browse files
authored
Merge pull request #44291 from github/repo-sync
Repo sync
2 parents 205b800 + 4840cbd commit a30743d

188 files changed

Lines changed: 23659 additions & 21273 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

content/code-security/concepts/security-at-scale/about-enabling-security-features-at-scale.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ For more information on purchasing {% data variables.product.prodname_GH_cs_or_s
4545
To learn how to create {% data variables.product.prodname_custom_security_configurations %}, see [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/creating-a-custom-security-configuration).
4646
{% endif %}
4747

48+
### After you apply a configuration
49+
50+
When you apply a {% data variables.product.prodname_security_configuration %} to repositories, each repository enters a managed relationship with that configuration. That relationship can change over time. For example, if a repository admin overrides a security setting on an unenforced configuration, if an organization or enterprise admin detaches the configuration, if enforcement is enabled, or if the initial attachment fails. Each change is reflected in the repository's configuration status.
51+
52+
For the full list of configuration statuses and recommended actions, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-statuses).
53+
4854
## About {% data variables.product.prodname_global_settings %}
4955

5056
While {% data variables.product.prodname_security_configurations %} determine repository-level security settings, {% data variables.product.prodname_global_settings %} determine your organization-level security settings, which are then inherited by all repositories. With {% data variables.product.prodname_global_settings %}, you can customize how security features analyze your organization.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ category:
1616

1717
After you create a {% data variables.product.prodname_custom_security_configuration %}, you need to apply it to repositories in your enterprise to enable the configuration's settings on those repositories.
1818

19+
The repository list displays each repository's configuration status. For the full list of statuses and recommended actions, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-statuses).
20+
1921
{% data reusables.security-configurations.security-features-use-actions %}
2022

2123
## Applying your {% data variables.product.prodname_custom_security_configuration %} to repositories in your enterprise

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ category:
1515
- Secure at scale
1616
---
1717

18-
## About applying a {% data variables.product.prodname_custom_security_configuration %}
19-
20-
After you create a {% data variables.product.prodname_custom_security_configuration %}, you need to apply it to repositories in your organization to enable the configuration's settings on those repositories. To learn how to create a {% data variables.product.prodname_custom_security_configuration %}, see [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/creating-a-custom-security-configuration).
18+
To learn how to create a {% data variables.product.prodname_custom_security_configuration %}, see [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/creating-a-custom-security-configuration).
2119

2220
## Applying your {% data variables.product.prodname_custom_security_configuration %} to repositories in your organization
2321

@@ -36,6 +34,8 @@ After you create a {% data variables.product.prodname_custom_security_configurat
3634
>[!NOTE]
3735
> If you apply an enforced configuration, this information is reported in the list of repositories. An enforced configuration means that repository owners are blocked from changing features that have been enabled or disabled in the configuration, but features that are not set aren't enforced.
3836
37+
After you apply a configuration, each repository's configuration status reflects the result of the operation—for example, `attached`, `attaching`, or `failed`. For the full list of statuses and recommended actions, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-statuses).
38+
3939
## Next steps
4040

4141
To learn how to monitor security alerts in your organization, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/find-insecure-repositories).

content/code-security/how-tos/secure-at-scale/configure-organization-security/manage-your-coverage/detaching-repositories-from-their-security-configurations.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ Alternatively, if you want to apply a {% data variables.product.prodname_securit
2222

2323
## Detaching repositories from linked {% data variables.product.prodname_security_configurations %}
2424

25+
Detached repositories show a status of "No configuration" in the repository table on the {% data variables.product.prodname_security_configurations %} settings page. For more information about all configuration statuses, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-statuses).
26+
2527
{% data reusables.profile.access_org %}
2628
{% data reusables.organizations.org_settings %}
2729
{% data reusables.security-configurations.view-configurations-page %}

content/code-security/reference/security-at-scale/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ children:
1111
- /security-overview-dashboard-metrics
1212
- /available-filters-for-security-overview
1313
- /security-configuration-enforcement
14+
- /security-configuration-statuses
1415
- /troubleshoot-security-configurations
1516
---
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: Security configuration statuses
3+
shortTitle: Configuration statuses
4+
intro: 'Each repository that has a {% data variables.product.prodname_security_configuration %} applied to it has a configuration status that reflects the current state of the relationship between the repository and the configuration.'
5+
versions:
6+
fpt: '*'
7+
ghec: '*'
8+
ghes: '*'
9+
contentType: reference
10+
category:
11+
- Secure at scale
12+
---
13+
14+
A repository's configuration status tells you the current state of its relationship with the applied {% data variables.product.prodname_security_configuration %}. That relationship can change over time—for example, when a repository admin overrides a setting, an admin enables enforcement, or an attachment fails. For more about how configurations and repositories interact, see [AUTOTITLE](/code-security/concepts/security-at-scale/about-enabling-security-features-at-scale).
15+
16+
You can view configuration statuses in the repository table on your organization's {% data variables.product.prodname_security_configurations %} settings page, or retrieve them with the REST API. For more information, see [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/manage-your-coverage/filtering-repositories-in-your-organization-using-the-repository-table) and [AUTOTITLE](/rest/code-security/configurations).
17+
18+
## Configuration status reference
19+
20+
The following table describes all configuration statuses, what causes each status, how each appears in the organization settings repository table, and the recommended action.
21+
22+
In the repository table, the "Configuration status" filter supports "Attached," "Removed," "Failed," "Enforced," and "Removed by enterprise." Repositories with a `detached` status appear as "No configuration" and are not filterable by configuration status in the UI. However, the REST API's `status` parameter does accept `detached` when listing repositories for an organization-level configuration.
23+
24+
| Status | Description | Cause | UI display | Recommended action |
25+
|---|---|---|---|---|
26+
| `attached` | The configuration is actively applied. The repository inherits all settings from the configuration. | An organization or enterprise admin applied the configuration to the repository. | The configuration name (for example, "My config") | No action needed. |
27+
| `attaching` | The configuration is being applied. This is a transient state. | An organization or enterprise admin just applied the configuration. | {% octicon "clock" aria-label="Applying" %} Applying CONFIGURATION-NAME | Wait for the operation to complete. If the status does not change, check for attachment failures. |
28+
| `updating` | The configuration is being updated on the repository. | An organization or enterprise admin changed a setting in the configuration. | {% octicon "clock" aria-label="Updating" %} Updating CONFIGURATION-NAME | Wait for the update to complete. |
29+
| `enforced` | The configuration is actively applied and enforced. Repository admins cannot change the enablement status of features controlled by the configuration. | An organization or enterprise admin enabled enforcement on the configuration. | {% octicon "shield" aria-label="Enforced" %} Enforced CONFIGURATION-NAME | No action needed. For more information, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-enforcement). |
30+
| `removed` | A repository-level setting was changed that conflicts with the configuration. The configuration is still associated with the repository, but the repository no longer inherits all settings. | A repository admin changed a security setting on an unenforced configuration. | {% octicon "alert" aria-label="Removed" %} Removed CONFIGURATION-NAME | To restore the intended settings, re-apply the configuration in the "{% data variables.product.prodname_AS %}" page of the repository. To prevent future overrides, consider enabling enforcement. |
31+
| `removed_by_enterprise` | An enterprise-level configuration change caused a conflict with the repository's settings. | An enterprise admin changed a setting that conflicts with the organization-level configuration applied to the repository. | {% octicon "alert" aria-label="Removed" %} Removed CONFIGURATION-NAME | Coordinate with your enterprise admin to resolve the conflict. Re-apply the configuration at the organization or enterprise level. |
32+
| `failed` | The configuration could not be attached to the repository. | A conflict between existing repository settings and the configuration prevented attachment. | {% octicon "alert" aria-label="Failed" %} Failed REASON | Filter by `config-status:failed` in the repository table, then follow the remediation guidance for the specific repository. For more information, see [AUTOTITLE](/code-security/reference/security-at-scale/troubleshoot-security-configurations/diagnosing-security-configuration-issues). |
33+
| `detached` | No configuration is applied. The repository's security settings are managed individually. | An organization admin detached the configuration, or the repository was never attached to a configuration. | No configuration | Apply a configuration if you want the repository to inherit centrally managed settings. For more information, see [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/applying-a-custom-security-configuration). |
34+
35+
## Understanding `removed` vs. `detached`
36+
37+
These statuses reflect different situations:
38+
39+
* **`removed`**: A repository admin changed a security setting that conflicts with an unenforced configuration. The configuration is still associated with the repository, but the repository no longer counts toward your organization's coverage metrics for that configuration. Re-applying the configuration restores the relationship.
40+
* **`detached`**: The configuration is fully disconnected from the repository. The repository's existing security settings are unchanged, but no configuration manages them. To restore centrally managed settings, apply a new configuration.
41+
42+
To prevent repositories from reaching a `removed` status, enable enforcement on the configuration. For more information, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-enforcement).
43+
44+
## Tracking configuration status changes with the audit log
45+
46+
Your organization's audit log records `repository_security_configuration` events whenever a configuration status changes. You can search for these events using the `action:repository_security_configuration` filter. For more information, see [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization#repository_security_configuration){% ifversion ghec or ghes %} and [AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise){% endif %}.
47+
48+
## Further reading
49+
50+
* [AUTOTITLE](/code-security/concepts/security-at-scale/about-enabling-security-features-at-scale)
51+
* [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-enforcement)
52+
* [AUTOTITLE](/code-security/reference/security-at-scale/troubleshoot-security-configurations/diagnosing-security-configuration-issues)
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: Diagnosing security configuration issues
3+
shortTitle: Diagnose configuration issues
4+
intro: Identify repositories where the security configuration could not be attached, or where the configuration relationship has changed, and follow guidance to remediate the problem.
5+
permissions: '{% data reusables.permissions.security-org-enable %}'
6+
versions:
7+
fpt: '*'
8+
ghec: '*'
9+
ghes: '*'
10+
redirect_from:
11+
- /code-security/securing-your-organization/managing-the-security-of-your-organization/finding-repositories-with-attachment-failures
12+
- /code-security/how-tos/secure-at-scale/troubleshoot-security-configurations/finding-repositories-with-attachment-failures
13+
- /code-security/reference/security-at-scale/troubleshoot-security-configurations/finding-repositories-with-attachment-failures
14+
contentType: reference
15+
category:
16+
- Troubleshoot security tools
17+
---
18+
19+
## Finding and remediating attachment failures
20+
21+
When you apply a configuration to a group of repositories, some repositories may fail to attach, typically because of a conflict between existing repository settings and the configuration you applied. When this happens, only some settings are applied to the affected repositories, and those repositories won't inherit future changes to the configuration.
22+
23+
On the security configuration settings page, in the **Repositories** tab under "Apply configurations", a banner shows how many repositories have an attachment failure and summarizes the reason. Click the link in the banner, or filter the repository list by `config-status:failed`, to see affected repositories and guidance on how to remediate each failure.
24+
25+
{% data reusables.profile.access_org %}
26+
{% data reusables.organizations.org_settings %}
27+
{% data reusables.security-configurations.view-configurations-page %}
28+
1. Click the **Repositories** tab.
29+
1. In the "Apply configurations" section, filter by `config-status:failed`.
30+
1. From the results list, for the repository you're interested in, click **{% octicon "alert" aria-hidden="true" aria-label="alert" %} Failed REASON**.
31+
1. In the dialog box, review the information and follow the remediation guidance.
32+
33+
## Finding and remediating removed configurations
34+
35+
A repository's configuration status changes to `removed` when a repository admin changes a security setting that conflicts with the applied configuration. The configuration is still associated with the repository, but the repository no longer inherits all settings from the configuration.
36+
37+
To find and remediate repositories with a `removed` status:
38+
39+
{% data reusables.profile.access_org %}
40+
{% data reusables.organizations.org_settings %}
41+
{% data reusables.security-configurations.view-configurations-page %}
42+
1. Filter the repository list using the "Configuration status" filter and select "Removed."
43+
1. To restore the intended settings, re-apply the configuration to the affected repositories.
44+
1. To prevent future overrides, consider enabling enforcement on the configuration. See [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-enforcement).
45+
46+
## Finding and remediating enterprise-removed configurations
47+
48+
A repository's configuration status changes to `removed_by_enterprise` when an enterprise-level change conflicts with the organization-level configuration applied to the repository.
49+
50+
To find and remediate repositories with a `removed_by_enterprise` status:
51+
52+
{% data reusables.profile.access_org %}
53+
{% data reusables.organizations.org_settings %}
54+
{% data reusables.security-configurations.view-configurations-page %}
55+
1. Filter the repository list using the "Configuration status" filter and select "Removed by enterprise."
56+
1. Coordinate with your enterprise admin to resolve the conflict between the enterprise-level and organization-level configurations.
57+
1. Re-apply the configuration at the organization or enterprise level.
58+
59+
For more information about all configuration statuses, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-statuses).
60+

content/code-security/reference/security-at-scale/troubleshoot-security-configurations/finding-repositories-with-attachment-failures.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

content/code-security/reference/security-at-scale/troubleshoot-security-configurations/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ children:
1010
- /a-repository-is-using-advanced-setup-for-code-scanning
1111
- /feature-disappears
1212
- /unexpected-default-setup
13-
- /finding-repositories-with-attachment-failures
13+
- /diagnosing-security-configuration-issues
1414
- /not-enough-github-advanced-security-licenses
1515
redirect_from:
1616
- /code-security/securing-your-organization/troubleshooting-security-configurations

content/code-security/tutorials/trialing-github-advanced-security/enable-security-features-trial.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ You may find it helpful to apply an enterprise security configuration to all rep
6767

6868
For more information, see [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/applying-a-custom-security-configuration).
6969

70+
After you apply a configuration, each repository's configuration status reflects the result. For example, a repository may show as `attached`, `attaching`, or `failed`. For a full list of statuses and recommended actions, see [AUTOTITLE](/code-security/reference/security-at-scale/security-configuration-statuses).
71+
7072
## Next steps
7173

7274
Now that you have enabled the security features you want to test, you are ready to look more deeply into how {% data variables.product.prodname_GH_secret_protection %} and {% data variables.product.prodname_GH_code_security %} protect your code.

0 commit comments

Comments
 (0)