Skip to content

Commit 9753a30

Browse files
authored
Merge pull request #45813 from github/repo-sync
Repo sync
2 parents 449d8c5 + e1b86f7 commit 9753a30

16 files changed

Lines changed: 136 additions & 17 deletions

File tree

.github/workflows/check-for-spammy-prs.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ jobs:
4141
const changedLines = (file.patch || '')
4242
.split('\n')
4343
.filter(line => /^[+-]/.test(line))
44-
)
45-
4644
return changedLines.length > 0 &&
4745
changedLines.every(line => line.slice(1).trim() === '')
4846
})

content/admin/backing-up-and-restoring-your-instance/about-the-backup-service-for-github-enterprise-server.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ category:
99
- Back up and upgrade your instance
1010
redirect_from:
1111
- /admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/about-the-backup-service-for-github-enterprise-server
12+
- /admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance
1213
---
1314

1415
{% ifversion ghes < 3.20 %}

content/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ Once a secret has been committed to a repository, you should consider the secret
4848
> [!NOTE]
4949
>{% data variables.product.prodname_secret_scanning_caps %} doesn't automatically close alerts when the corresponding token has been removed from the repository. You must manually close these alerts in the alert list on {% data variables.product.prodname_dotcom %}.
5050
51+
{% ifversion secret-scanning-merge-protection %}
52+
53+
If a branch ruleset requires {% data variables.product.prodname_secret_scanning %} alerts to be resolved, an open alert introduced by a pull request can block merging. After fixing the exposed secret, close the alert using the following steps. After all blocking alerts are closed, the alerts no longer prevent merging. The rule can continue to block merging until a {% data variables.product.prodname_secret_scanning %} scan completes for the pull request's head commit.
54+
55+
{% endif %}
56+
5157
{% data reusables.repositories.navigate-to-repo %}
5258
{% data reusables.repositories.sidebar-security %}
5359
1. In the left sidebar, under "Vulnerability alerts", click **{% data variables.product.prodname_secret_scanning_caps %}**.
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
title: Blocking pull request merges that contain secrets
3+
shortTitle: Block merges with secrets
4+
intro: Prevent exposed secrets from reaching protected branches by requiring contributors to resolve {% data variables.product.prodname_secret_scanning %} alerts before merging.
5+
permissions: '{% data reusables.permissions.security-org-enable %}{% ifversion enterprise-code-rulesets %}, and enterprise owners{% endif %}'
6+
product: '{% data reusables.gated-features.secret-protection %}'
7+
versions:
8+
feature: secret-scanning-merge-protection
9+
contentType: how-tos
10+
category:
11+
- Protect your secrets
12+
redirect_from:
13+
- /code-security/how-tos/secure-your-secrets/prevent-future-leaks/block-pull-request-merges
14+
---
15+
16+
> [!NOTE]
17+
> {% data reusables.secret-scanning.merge-protection-public-preview %}
18+
19+
The **Require secret scanning alerts are resolved** rule is available for rulesets that target branches in repositories. You can use the rule to block a pull request from merging when either of these conditions applies:
20+
21+
* A {% data variables.product.prodname_secret_scanning %} scan has not completed for the head commit of the pull request.
22+
* A commit in the pull request introduced an open {% data variables.product.prodname_secret_scanning %} alert that matches a secret type selected in the ruleset.
23+
24+
The rule supports provider, custom, and generic patterns. It does not support AI-detected secrets.
25+
26+
## Prerequisites
27+
28+
The repositories that you want to protect must have:
29+
30+
* Either {% data variables.product.prodname_GH_secret_protection %} or {% data variables.product.prodname_GHAS %} enabled
31+
* {% data variables.product.prodname_secret_scanning_caps %} enabled. See [AUTOTITLE](/code-security/how-tos/secure-your-secrets/detect-secret-leaks/enable-secret-scanning).
32+
33+
## Creating a merge protection ruleset for a repository
34+
35+
{% data reusables.repositories.navigate-to-repo %}
36+
{% data reusables.repositories.sidebar-settings %}
37+
{% data reusables.repositories.repo-rulesets-settings %}
38+
1. Click **New ruleset**.
39+
1. Click **New branch ruleset**.
40+
{% data reusables.repositories.rulesets-general-step %}
41+
{% data reusables.repositories.rulesets-target-branches %}
42+
{% data reusables.repositories.rulesets-require-secret-scanning-alerts-resolved %}
43+
{% data reusables.repositories.rulesets-create-and-insights-step %}
44+
45+
For information about configuring bypass permissions and other ruleset settings, see [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository).
46+
47+
## Creating a merge protection ruleset for repositories in an organization{% ifversion enterprise-code-rulesets %} or enterprise{% endif %}
48+
49+
{% ifversion enterprise-code-rulesets %}You can create this ruleset for repositories in your organization, or create it for an enterprise to apply merge protection consistently across repositories in multiple organizations.
50+
51+
### Accessing organization ruleset settings{% endif %}
52+
53+
{% data reusables.profile.access_org %}
54+
{% data reusables.profile.org_settings %}
55+
{% data reusables.organizations.access-ruleset-settings %}
56+
57+
{% ifversion enterprise-code-rulesets %}
58+
59+
### Accessing enterprise ruleset settings
60+
61+
{% data reusables.enterprise-accounts.access-enterprise %}
62+
{% data reusables.enterprise-accounts.policies-tab %}
63+
1. Under "Policies", click **Code**.
64+
65+
### Configuring the ruleset{% endif %}
66+
67+
1. Click **New ruleset**.
68+
1. Click **New branch ruleset**.
69+
{% data reusables.repositories.rulesets-general-step %}
70+
{% ifversion enterprise-code-rulesets %}
71+
1. If you are creating an enterprise-level ruleset, under "Target organizations", choose the organizations that the ruleset will apply to.
72+
{% endif %}
73+
1. Under "Target repositories", choose the repositories that the ruleset will apply to.
74+
{% data reusables.repositories.rulesets-target-branches %}
75+
{% data reusables.repositories.rulesets-require-secret-scanning-alerts-resolved %}
76+
{% data reusables.repositories.rulesets-create-and-insights-step %}
77+
78+
For information about configuring bypass permissions and other ruleset settings, see [AUTOTITLE](/organizations/managing-organization-settings/creating-rulesets-for-repositories-in-your-organization){% ifversion enterprise-code-rulesets %} and [AUTOTITLE](/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-governance){% endif %}.
79+
80+
## Unblocking a pull request
81+
82+
When this rule blocks a pull request because of open alerts, you must resolve each alert that matches the secret types selected in the ruleset. See [AUTOTITLE](/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts).
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: How-tos for leak prevention
33
shortTitle: Prevent future leaks
4-
intro: Learn how to prevent future secret leaks with {% data variables.product.github %}'s push protection.
4+
intro: Prevent exposed secrets from reaching your repositories and protected branches.
55
versions:
66
fpt: '*'
77
ghes: '*'
@@ -10,5 +10,5 @@ contentType: how-tos
1010
children:
1111
- /enable-push-protection
1212
- /manage-user-push-protection
13+
- /block-merges-with-secrets
1314
---
14-

content/copilot/get-started/enterprise-ai-governance.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ journeyTracks:
2222
description: 'Use {% data variables.product.github %}''s governance features to stay in control of your codebase and compliance requirements.'
2323
guides:
2424
- href: '/copilot/tutorials/roll-out-at-scale/govern-at-scale/govern-for-adoption'
25-
- href: '/copilot/concepts/policies'
25+
- href: '/copilot/concepts/enterprise/policies'
2626
- href: '/copilot/tutorials/roll-out-at-scale/govern-at-scale/maintain-codebase-standards'
2727
- href: '/copilot/how-tos/administer-copilot/manage-for-enterprise/review-audit-logs'
2828
- id: 'adopting_agents'
2929
title: 'Preparing for agents'
3030
description: 'Learn what agents can do for your enterprise, and prepare to roll them out.'
3131
guides:
3232
- href: '/copilot/tutorials/roll-out-at-scale/enable-developers/integrate-ai-agents'
33-
- href: '/copilot/concepts/agents/enterprise-management'
33+
- href: '/copilot/concepts/enterprise/agent-management'
3434
- href: '/copilot/tutorials/cloud-agent/build-guardrails'
3535
- href: '/copilot/how-tos/administer-copilot/manage-mcp-usage/configure-enterprise-allowlist'
3636
- id: 'enable_agents'
@@ -47,6 +47,6 @@ journeyTracks:
4747
title: 'Adopting new features'
4848
description: 'Expand your capabilities by assessing and rolling out any new feature or model.'
4949
guides:
50-
- href: '/copilot/concepts/learning-about-new-features-and-models'
50+
- href: '/copilot/concepts/enterprise/learning-about-new-features-and-models'
5151
- href: '/copilot/tutorials/roll-out-at-scale/govern-at-scale/pilot-a-feature-or-model'
5252
---

content/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ docsTeamMetrics:
2020

2121
You can use the `/sandbox` slash command to grant extra paths, adjust network access, or turn sandboxing on or off.
2222

23+
> [!NOTE]
24+
> If you get your {% data variables.product.prodname_copilot_short %} license from an enterprise, some or all sandbox settings may be controlled by enterprise managed settings. A managed setting is labeled `(managed)` in the `/sandbox` interface and can't be changed.
25+
2326
For a conceptual overview of cloud and local sandboxes for {% data variables.product.prodname_copilot_short %}, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes).
2427

2528
## Opening the sandbox configuration

content/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-sandboxes-for-your-organization.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,5 @@ Enterprise owners can control cloud sandbox access for all organizations in the
4848

4949
* [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes)
5050
* [AUTOTITLE](/billing/concepts/product-billing/cloud-and-local-sandboxes)
51+
* [AUTOTITLE](/copilot/reference/enterprise-administrators/enterprise-managed-settings#sandbox)
52+

content/copilot/how-tos/set-up/set-up-for-self.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ There are a few ways that you can get access to {% data variables.product.prodna
2323
* **Sign up for a paid plan**. You can subscribe to one of these plans:
2424

2525
* **{% data variables.copilot.copilot_pro_short %}**, which includes access to premium models and a monthly allowance of {% data variables.product.prodname_ai_credits_short %}. [Subscribe to {% data variables.copilot.copilot_pro_short %}](https://github.com/github-copilot/signup?ref_product=copilot&ref_type=purchase&ref_style=text&ref_plan=pro).
26-
* **{% data variables.copilot.copilot_pro_plus_short %}**, which includes a higher monthly allowance of {% data variables.product.prodname_ai_credits_short %} and access to all available models. [Subscribe to {% data variables.copilot.copilot_pro_plus_short %}](https://github.com/github-copilot/signup?ref_product=copilot&ref_type=purchase&ref_style=text&ref_plan=pro).
26+
* **{% data variables.copilot.copilot_pro_plus_short %}**, which includes a higher monthly allowance of {% data variables.product.prodname_ai_credits_short %} and access to all available models. [Subscribe to {% data variables.copilot.copilot_pro_plus_short %}](https://github.com/github-copilot/signup?ref_product=copilot&ref_type=purchase&ref_style=text&ref_plan=pro-plus).
2727
* **{% data variables.copilot.copilot_max_short %}**, which includes advanced AI models and our highest individual monthly allowance of {% data variables.product.prodname_ai_credits_short %}. [Subscribe to {% data variables.copilot.copilot_max_short %}](https://github.com/settings/billing/licensing?ref_product=copilot&ref_type=purchase&ref_style=text&ref_plan=max).
2828

2929
* **Use {% data variables.product.prodname_copilot_short %} through your organization or enterprise**. If you're part of an organization or enterprise with a {% data variables.product.prodname_copilot_short %} plan, you can request access at [https://github.com/settings/copilot](https://github.com/settings/copilot) under "Get {% data variables.product.prodname_copilot_short %} from an organization."

content/copilot/reference/enterprise-administrators/enterprise-managed-settings.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ For instructions on creating the file, see [AUTOTITLE](/copilot/how-tos/administ
2121
| Key | Purpose | {% data variables.copilot.copilot_cli_short %} | {% data variables.product.prodname_vscode_shortname %} | {% data variables.copilot.github_copilot_app %} | {% data variables.copilot.copilot_cloud_agent %} | {% data variables.product.prodname_jetbrains_ides %} |
2222
| --- | --- | --- | --- | --- | --- | --- |
2323
| `permissions.disableBypassPermissionsMode` | Disables bypass or YOLO-style allow-all behavior | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} |
24-
| `permissions.deny` | Blocks specific operations | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
25-
| `permissions.ask` | Requires a fresh human approval before specific operations can proceed | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
26-
| `permissions.allow` | Permits specific operations to proceed without a prompt | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
24+
| `permissions.deny` | Blocks specific operations | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
25+
| `permissions.ask` | Requires a fresh human approval before specific operations can proceed | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
26+
| `permissions.allow` | Permits specific operations to proceed without a prompt | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} |
2727
| `model` | Sets your preferred model as the default for new conversations | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} |
2828
| `enabledPlugins` | Enables or disables specific plugins by key | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} |
2929
| `extraKnownMarketplaces` | Adds plugin marketplaces that users can access | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} |
@@ -172,6 +172,8 @@ This key is overridable by enterprise team mapping. In your `{% data variables.c
172172

173173
### deny, ask, allow
174174

175+
In {% data variables.product.prodname_vscode_shortname %}, these granular permission rules apply to {% data variables.product.prodname_copilot_short %} sessions that use Agent Host. The `permissions.disableBypassPermissionsMode` setting has broader {% data variables.product.prodname_vscode_shortname %} support and isn't limited to Agent Host.
176+
175177
The `permissions.deny`, `permissions.ask`, and `permissions.allow` keys use **deny > ask > allow** precedence. If an MDM-managed, server-managed, or file-based source defines any permission rule—or if any applicable source declares an `allow` list—an unmatched supported operation defaults to requiring approval. Otherwise, it follows the ordinary permission flow.
176178

177179
* `deny` blocks specific operations, regardless of whether they also match an `ask` or `allow` rule. A deny rule set by any managed settings source blocks the operation for all users regardless of rules in the other sources.

0 commit comments

Comments
 (0)