Skip to content

Commit d33c0b1

Browse files
authored
Merge branch 'main' into patch-15
2 parents d471672 + 21d48b6 commit d33c0b1

107 files changed

Lines changed: 2212 additions & 877 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/actions/concepts/runners/github-hosted-runners.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ contentType: concepts
2727

2828
## Overview of {% data variables.product.prodname_dotcom %}-hosted runners
2929

30+
{% data reusables.actions.enterprise-github-hosted-runners %}
31+
3032
Runners are the machines that execute jobs in a {% data variables.product.prodname_actions %} workflow. For example, a runner can clone your repository locally, install testing software, and then run commands that evaluate your code.
3133

3234
{% data variables.product.prodname_dotcom %} provides runners that you can use to run your jobs, or you can [host your own runners](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners). {% data reusables.actions.single-cpu-runners %}

content/actions/concepts/security/github_token.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ The token is also available in the `github.token` context. For more information,
2929

3030
{% data reusables.actions.actions-do-not-trigger-workflows %}
3131

32-
{% ifversion actions-github-token-pull-request-approval %}
33-
> [!NOTE]
34-
> If you need workflow runs from workflow-created pull requests to execute without requiring approval, use a {% data variables.product.prodname_github_app %} installation access token or a {% data variables.product.pat_generic %} instead of `GITHUB_TOKEN` when creating or updating the pull request.
35-
{% endif %}
36-
3732
{% data reusables.actions.actions-do-not-trigger-pages-rebuilds %}
3833

3934
## Next steps

content/actions/how-tos/write-workflows/choose-when-workflows-run/trigger-a-workflow.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ To learn more about workflows and triggering workflows, see [AUTOTITLE](/actions
2525

2626
{% data reusables.actions.actions-do-not-trigger-workflows %} For more information, see [AUTOTITLE](/actions/security-guides/automatic-token-authentication).
2727

28-
If you do want to trigger a workflow from within a workflow run, you can use a {% data variables.product.prodname_github_app %} installation access token or a {% data variables.product.pat_generic %} instead of `GITHUB_TOKEN` to trigger events that require a token.{% ifversion actions-github-token-pull-request-approval %} Using one of these alternatives also lets `pull_request` workflows run automatically (without the approval prompt described above) when the pull request is created or updated by automation.{% endif %}
28+
If you do want to trigger a workflow from within a workflow run, you can use a {% data variables.product.prodname_github_app %} installation access token or a {% data variables.product.pat_generic %} instead of `GITHUB_TOKEN` to trigger events that require a token.
2929

3030
If you use a {% data variables.product.prodname_github_app %}, you'll need to create a {% data variables.product.prodname_github_app %} and store the app ID and private key as secrets. For more information, see [AUTOTITLE](/apps/creating-github-apps/guides/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow). If you use a {% data variables.product.pat_generic %}, you'll need to create a {% data variables.product.pat_generic %} and store it as a secret. For more information about creating a {% data variables.product.pat_generic %}, see [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). For more information about storing secrets, see [AUTOTITLE](/actions/security-guides/using-secrets-in-github-actions).
3131

content/actions/reference/workflows-and-actions/events-that-trigger-workflows.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -510,8 +510,7 @@ on:
510510
> [!NOTE]
511511
> * {% data reusables.developer-site.multiple_activity_types %} For information about each activity type, see [AUTOTITLE](/webhooks-and-events/webhooks/webhook-events-and-payloads#pull_request). By default, a workflow only runs when a `pull_request` event's activity type is `opened`, `synchronize`, or `reopened`. To trigger workflows by different activity types, use the `types` keyword. For more information, see [AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#onevent_nametypes).
512512
> * Workflows will not run on `pull_request` activity if the pull request has a merge conflict. The merge conflict must be resolved first. Conversely, workflows with the `pull_request_target` event will run even if the pull request has a merge conflict. Before using the `pull_request_target` trigger, you should be aware of the security risks. For more information, see [`pull_request_target`](#pull_request_target).
513-
> * The `pull_request` webhook event payload is empty for merged pull requests and pull requests that come from forked repositories.{% ifversion actions-github-token-pull-request-approval %}
514-
> * When a pull request is created or updated by a workflow using `GITHUB_TOKEN`, `pull_request` events with the `opened`, `synchronize`, or `reopened` activity types create workflow runs that require approval. A user with write access to the repository can approve these runs from the pull request page. With the exception of `workflow_dispatch` and `repository_dispatch`, other `GITHUB_TOKEN`-triggered events do not create workflow runs at all.{% endif %}
513+
> * The `pull_request` webhook event payload is empty for merged pull requests and pull requests that come from forked repositories.
515514
> * The value of `GITHUB_REF` varies for a closed pull request depending on whether the pull request has been merged or not. If a pull request was closed but not merged, it will be `refs/pull/PULL_REQUEST_NUMBER/merge`. If a pull request was closed as a result of being merged, it will be the fully qualified `ref` of the branch it was merged into, for example `/refs/heads/main`.
516515

517516
Runs your workflow when activity on a pull request in the workflow's repository occurs. For example, if no activity types are specified, the workflow runs when a pull request is opened or reopened or when the head branch of the pull request is updated. For activity related to pull request reviews, pull request review comments, or pull request comments, use the [`pull_request_review`](#pull_request_review), [`pull_request_review_comment`](#pull_request_review_comment), or [`issue_comment`](#issue_comment) events instead. For information about the pull request APIs, see [AUTOTITLE](/graphql/reference/objects#pullrequest) in the GraphQL API documentation or [AUTOTITLE](/rest/pulls).

content/billing/concepts/product-billing/github-actions.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ The use of standard {% data variables.product.github %}-hosted runners is free:
112112
* In public repositories
113113
* For {% data variables.product.prodname_pages %}
114114
* For {% data variables.product.prodname_dependabot %}
115-
* For the agentic features ({% data variables.release-phases.public_preview %}) in {% data variables.copilot.copilot_code-review %}
116115

117116
> [!NOTE]
118117
>

content/billing/concepts/product-billing/github-copilot-licenses.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ category:
1515
- Understand product costs
1616
---
1717

18+
<!-- expires 2026-06-01 -->
19+
20+
{% data reusables.copilot.ubb-announcement-cfi-cb-ce %}
21+
22+
<!-- end expires 2026-06-01 -->
23+
1824
Usage of {% data variables.product.prodname_copilot %} is measured through a combination of licenses and monthly usage tracking. For more information about how usage costs in {% data variables.product.prodname_copilot_short %} work, see [AUTOTITLE](/billing/concepts/product-billing/github-copilot-premium-requests).
1925

2026
## Licenses for {% data variables.product.prodname_copilot_short %}

content/billing/concepts/product-billing/github-copilot-premium-requests.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ category:
88
- Understand product costs
99
---
1010

11+
<!-- expires 2026-06-01 -->
12+
13+
{% data reusables.copilot.ubb-announcement-cfi-cb-ce %}
14+
15+
<!-- end expires 2026-06-01 -->
16+
1117
Usage of {% data variables.product.prodname_copilot_short %} is measured through a combination of licenses and monthly usage tracking. For more information about how license costs in {% data variables.product.prodname_copilot_short %} work, see [AUTOTITLE](/billing/concepts/product-billing/github-copilot-licenses).
1218

1319
> [!IMPORTANT]
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
title: Assessing the impact of GitHub Secret Protection
3+
intro: 'Measure how {% data variables.product.prodname_GH_secret_protection_always %} reduces secret exposure across your organization, so you can demonstrate value and identify areas to strengthen your security posture.'
4+
allowTitleToDifferFromFilename: true
5+
shortTitle: Assess GHSP impact
6+
versions:
7+
fpt: '*'
8+
ghec: '*'
9+
ghes: '*'
10+
contentType: tutorials
11+
category:
12+
- Protect your secrets
13+
---
14+
15+
## Introduction
16+
17+
After enabling {% data variables.product.prodname_GH_secret_protection_always %} (GHSP) for your organization, you'll want to assess its impact and understand how it's protecting your organization. This tutorial walks you through accessing secret-related data and interpreting the results to measure GHSP performance.
18+
19+
In this tutorial, you'll learn how to:
20+
* Access your organization's security overview to view {% data variables.product.prodname_secret_scanning %} data
21+
* Review the {% data variables.product.prodname_secret_risk_assessment %} (SRA) report
22+
* Compare and analyze the data to assess GHSP's impact
23+
24+
If you don't have a historic SRA report from before your GHSP rollout, you can still assess GHSP's effectiveness. Skip ahead to [Step 4: Analyze security overview data trends](#step-4-analyze-security-overview-data-trends).
25+
26+
## Prerequisites
27+
28+
* You need to have the organization owner or security manager role.
29+
* {% data variables.product.prodname_secret_protection %} must be enabled for your organization.
30+
31+
## Step 1: Access the organization-level security overview
32+
33+
The security overview provides real-time data about {% data variables.secret-scanning.alerts %} across your organization.
34+
35+
{% data reusables.organizations.navigate-to-org %}
36+
{% data reusables.organizations.security-overview %}
37+
1. On the security overview page, click the **Risk** tab to view secret scanning data.
38+
The overview shows:
39+
* Total number of open {% data variables.secret-scanning.alerts %}
40+
* Alert trends over time
41+
* Breakdown by repository
42+
* Alert severity distribution
43+
44+
## Step 2: View your {% data variables.product.prodname_secret_risk_assessment %} report
45+
46+
If you previously ran a SRA report, you can access the report to establish a baseline.
47+
48+
{% data reusables.organizations.navigate-to-org %}
49+
{% data reusables.organizations.security-overview %}
50+
{% data reusables.security-overview.open-assessments-view %}
51+
1. Review the key metrics from the assessment, including:
52+
* Number of exposed secrets detected
53+
* Types of secrets found
54+
* Repositories with the highest risk
55+
* Recommended remediation actions
56+
57+
> [!NOTE] The SRA report represents a point-in-time snapshot of your secret exposure before or during your GHSP implementation.
58+
59+
## Step 3: Compare SRA data with current security overview
60+
61+
The SRA report is a **point-in-time** snapshot taken before or during your GHSP rollout, while the security overview shows **real-time** data that updates as alerts are opened and resolved. To make a meaningful comparison, you need to ensure both datasets cover the same secret types.
62+
63+
### Filter to comparable pattern types
64+
65+
The SRA report only detects **provider patterns** and **generic patterns**. The security overview, however, may also include results from custom patterns you've configured since enabling GHSP. To ensure an accurate comparison, filter the security overview to the same pattern types the SRA covers.
66+
67+
#### Using the UI
68+
69+
In the security overview **Risk** tab, use the filter bar to narrow results to provider and generic patterns only, excluding any custom patterns.
70+
71+
#### Using the API
72+
73+
Alternatively, you can use the REST API to programmatically retrieve alerts filtered by secret type. For example, to list only default (provider) {% data variables.secret-scanning.alerts %} for a repository:
74+
75+
```shell copy
76+
gh api \
77+
-H "Accept: application/vnd.github+json" \
78+
/orgs/ORG/secret-scanning/alerts --paginate
79+
```
80+
81+
This returns alerts for default patterns only. To also include generic patterns in your results, pass the specific token names using the `secret_type` parameter.
82+
83+
For more information, see [AUTOTITLE](/rest/secret-scanning/secret-scanning).
84+
85+
### Build your comparison
86+
87+
1. Using the filtered data, create a comparison table with these key metrics:
88+
89+
| Metric | SRA report (Baseline) | Current security overview (Filtered) | Change |
90+
|--------|----------------------|--------------------------------------|--------|
91+
| Total exposed secrets | [SRA number] | [Current number] | [Difference] |
92+
| Critical alerts | [SRA number] | [Current number] | [Difference] |
93+
| Affected repositories | [SRA number] | [Current number] | [Difference] |
94+
95+
1. Calculate the percentage change for each metric:
96+
* **Positive impact indicators:** Reduction in total exposed secrets, fewer critical alerts
97+
* **Areas for improvement:** New alerts appearing, specific repositories with increasing trends
98+
99+
1. Note any significant differences in:
100+
* Secret types being detected
101+
* Repository coverage
102+
* Alert resolution rates
103+
104+
## Step 4: Analyze security overview data trends
105+
106+
Even without an SRA report, you can assess GHSP effectiveness by analyzing trends in the security overview.
107+
108+
{% data reusables.organizations.navigate-to-org %}
109+
{% data reusables.organizations.security-overview %}
110+
1. In the security overview **Risk** tab, look at the trend graph showing {% data variables.secret-scanning.alerts %} over time.
111+
1. Identify patterns:
112+
* **Declining trend:** Indicates successful remediation and prevention
113+
* **Plateau:** May suggest steady state or need for increased awareness
114+
* **Rising trend:** May indicate increased detection coverage or new secret introduction
115+
116+
1. Click on individual repositories to drill down into specific alert details.
117+
1. Review the alert resolution rate:
118+
* Navigate to the **{% data variables.product.prodname_security_and_quality_tab %}** tab for your organization.
119+
* Under "Findings", Click **{% data variables.product.prodname_secret_scanning_caps %}**.
120+
* Check how many alerts have been closed versus the number of alerts that remain open.
121+
* Select the alert type you're interested in.
122+
* Assess average time to resolution.
123+
124+
## Step 5: Interpret the results and take action
125+
126+
Based on your analysis, determine the next steps.
127+
128+
### If you're seeing positive trends
129+
130+
* Document the improvement to demonstrate GHSP value
131+
* Identify successful practices to replicate across other repositories
132+
* Consider expanding GHSP coverage to additional repositories or organizations
133+
134+
### If you're seeing areas for improvement
135+
136+
* Review repositories with increasing alerts or slow resolution times
137+
* Provide additional training to development teams
138+
* Assess whether custom patterns need to be configured
139+
* Check if push protection is enabled to prevent new secrets from being introduced
140+
141+
### Ongoing monitoring
142+
143+
* Schedule regular reviews (weekly or monthly) of the security overview
144+
* Set up notifications for new {% data variables.secret-scanning.alerts %}
145+
* Track metrics over time to demonstrate continuous improvement
146+
147+
## Further reading
148+
149+
* To understand {% data variables.product.prodname_secret_scanning %} metrics in detail, see [AUTOTITLE](/code-security/security-overview/viewing-security-insights).

content/code-security/tutorials/remediate-leaked-secrets/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ versions:
88
contentType: tutorials
99
children:
1010
- /calculating-the-cost-savings-of-push-protection
11+
- /assessing-ghsp-impact
1112
- /evaluating-alerts
1213
- /remediating-a-leaked-secret
1314
---
14-

content/copilot/concepts/agents/about-agent-skills.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ You can also use `gh skill` in {% data variables.product.prodname_cli %} to disc
2525
{% data variables.product.prodname_copilot_short %} supports:
2626

2727
* Project skills, stored in your repository (`.github/skills`, `.claude/skills`, or `.agents/skills`)
28-
* Personal skills, stored in your home directory and shared across projects (`~/.copilot/skills`, `~/.claude/skills`, or `~/.agents/skills`)
28+
* Personal skills, stored in your home directory and shared across projects (`~/.copilot/skills` or `~/.agents/skills`)
2929

3030
Support for organization-level and enterprise-level skills is coming soon.
3131

0 commit comments

Comments
 (0)