Skip to content

Commit 63bc154

Browse files
Merge branch 'main' into casey/helm-versioning-strategy
2 parents 28d0940 + e26d35e commit 63bc154

54 files changed

Lines changed: 685 additions & 233 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.

.github/workflows/link-check-internal.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -134,27 +134,28 @@ jobs:
134134
return
135135
}
136136
137-
const tableRows = redirectGroups.map(g => {
137+
const directives = redirectGroups.map(g => {
138138
const occ = g.occurrences[0]
139139
const redirectTarget = occ?.redirectTarget ?? 'unknown'
140140
const file = occ?.file ?? 'unknown'
141-
const lines = (occ?.lines ?? []).join(', ')
142-
return `| \`${g.target}\` | \`${redirectTarget}\` | \`${file}\` | ${lines} |`
141+
const lines = (occ?.lines ?? []).join(', ') || 'unknown'
142+
return `- Update \`${g.target}\` to \`${redirectTarget}\` in \`${file}\` (line(s): ${lines})`
143143
}).join('\n')
144144
145145
const artifactsUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}/artifacts`
146146
147147
const bodyLines = [
148-
'Copilot please fix the redirected internal links listed in the table below. All changes should be made within the `github/docs-internal` repository. For each entry, open the source file and replace the **Current Link** with the **Update To** path.',
148+
'Copilot, fix the redirected internal links listed below. All changes should be made within the `github/docs-internal` repository.',
149+
'',
150+
'For each directive below, open the specified file and find the old link path. Replace it with the new link path exactly as shown. Do not invent or guess link paths — only use the exact paths provided in each directive.',
151+
'',
149152
'When all changes are made, open a pull request in `github/docs-internal` with the fixes. The pull request description should reference this issue to create a link between them. When the pull request is open, leave a comment on this issue with a link to it.',
150153
'',
151154
`These are the first ${redirectGroups.length} of ${allRedirectGroups.length} redirects found.`,
152155
'',
153-
'## Redirects to fix',
156+
'## Redirects to update',
154157
'',
155-
'| Current Link | Update To | File | Line(s) |',
156-
'|---|---|---|---|',
157-
tableRows,
158+
directives,
158159
]
159160
160161
const MAX_ISSUE_BODY_LENGTH = 65536
@@ -179,7 +180,7 @@ jobs:
179180
agent_assignment: {
180181
target_repo: 'github/docs-internal',
181182
base_branch: 'main',
182-
custom_instructions: 'For each entry in the table, open the source file in the github/docs-internal repository and replace the Current Link with the Update To path. When all changes are made, open a pull request in github/docs-internal with the fixes. When the pull request is open, leave a comment on this issue with a link to it.',
183+
custom_instructions: 'Follow each directive in the issue exactly. Each directive specifies a file, the old link to find, and the new link to replace it with. Use only the exact paths provided — do not invent or guess any link paths. When all changes are made, open a pull request in github/docs-internal with the fixes. When the pull request is open, leave a comment on this issue with a link to it.',
183184
},
184185
})
185186

.github/workflows/sync-secret-scanning.yml

Lines changed: 32 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -37,61 +37,44 @@ jobs:
3737
run: |
3838
npm run sync-secret-scanning
3939
40-
- name: Create a pull request
40+
- name: Create pull request
41+
id: create-pull-request
42+
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # pin @v8.0.0
4143
env:
42-
# Needed for gh
43-
GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_BASE }}
44-
run: |
45-
# If nothing to commit, exit now. It's fine.
46-
changes=$(git diff --name-only | wc -l)
47-
untracked=$(git status --untracked-files --short | wc -l)
48-
if [[ $changes -eq 0 ]] && [[ $untracked -eq 0 ]]; then
49-
echo "There are no changes to commit. Exiting..."
50-
exit 0
51-
fi
52-
53-
git config --global user.name "docs-bot"
54-
git config --global user.email "77750099+docs-bot@users.noreply.github.com"
55-
56-
branchname=sync-secret-scanning-`date +%Y%m%d%H%M%S`
57-
58-
remotesha=$(git ls-remote --heads origin $branchname)
59-
if [ -n "$remotesha" ]; then
60-
# output is not empty, it means the remote branch exists
61-
echo "Branch $branchname already exists in 'github/docs-internal'. Exiting..."
62-
exit 0
63-
fi
64-
65-
git checkout -b $branchname
66-
git add .
67-
git commit -m "Add updated secret scanning data"
68-
git push origin $branchname
69-
70-
echo "Creating pull request..."
71-
gh pr create \
72-
--title "Sync secret scanning data" \
73-
--body '👋 humans. This PR updates the secret scanning data with the latest changes from github/token-scanning-service.
44+
# Disable pre-commit hooks; they don't play nicely here
45+
HUSKY: '0'
46+
with:
47+
# need to use a token with repo and workflow scopes for this step
48+
token: ${{ secrets.DOCS_BOT_PAT_BASE }}
49+
commit-message: 'Add updated secret scanning data'
50+
title: Sync secret scanning data
51+
body: |
52+
👋 humans. This PR updates the secret scanning data with the latest changes from github/token-scanning-service.
7453
7554
If CI passes, this PR will be auto-merged. :green_heart:
7655
77-
If CI does not pass or other problems arise, contact #docs-engineering on Slack.' \
78-
--repo github/docs-internal \
79-
--label secret-scanning-pipeline,'skip FR board',workflow-generated \
80-
--head=$branchname
56+
If CI does not pass or other problems arise, contact #docs-engineering on Slack.
57+
58+
This automated PR was created by [this workflow](https://github.com/github/docs-internal/blob/main/.github/workflows/sync-secret-scanning.yml).
59+
branch: sync-secret-scanning-data
60+
labels: |
61+
secret-scanning-pipeline
62+
skip FR board
63+
workflow-generated
8164
82-
# can't approve your own PR, approve with Actions
83-
echo "Approving pull request..."
84-
unset GITHUB_TOKEN
85-
gh auth login --with-token <<< "${{ secrets.GITHUB_TOKEN }}"
86-
gh pr review --approve
87-
echo "Approved pull request"
65+
- name: Enable GitHub auto-merge
66+
if: ${{ steps.create-pull-request.outputs.pull-request-number }}
67+
env:
68+
GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_BASE }}
69+
AUTOMERGE_PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
70+
run: npm run enable-automerge
8871

89-
# Actions can't merge the PR so back to docs-bot to merge
90-
echo "Setting pull request to auto merge..."
91-
unset GITHUB_TOKEN
92-
gh auth login --with-token <<< "${{ secrets.DOCS_BOT_PAT_BASE }}"
93-
gh pr merge --auto --merge
94-
echo "Set pull request to auto merge"
72+
- if: ${{ steps.create-pull-request.outputs.pull-request-number }}
73+
name: Approve
74+
uses: juliangruber/approve-pull-request-action@dcc4effb325c0b503408619918d56e40653dcc91
75+
with:
76+
github-token: ${{ secrets.GITHUB_TOKEN }}
77+
number: ${{ steps.create-pull-request.outputs.pull-request-number }}
9578

9679
- uses: ./.github/actions/slack-alert
9780
if: ${{ failure() && github.event_name != 'workflow_dispatch' }}

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ jobs:
315315

316316
| Webhook event payload | Activity types | `GITHUB_SHA` | `GITHUB_REF` |
317317
| --------------------- | -------------- | ------------ | -------------|
318-
| [`issues`](/webhooks-and-events/webhooks/webhook-events-and-payloads#issues) | - `opened`<br/>- `edited`<br/>- `deleted`<br/>- `transferred`<br/>- `pinned`<br/>- `unpinned`<br/>- `closed`<br/>- `reopened`<br/>- `assigned`<br/>- `unassigned`<br/>- `labeled`<br/>- `unlabeled`<br/>- `locked`<br/>- `unlocked`<br/>- `milestoned`<br/> - `demilestoned`<br/> - `typed`<br/> - `untyped` | Last commit on default branch | Default branch |
318+
| [`issues`](/webhooks-and-events/webhooks/webhook-events-and-payloads#issues) | - `opened`<br/>- `edited`<br/>- `deleted`<br/>- `transferred`<br/>- `pinned`<br/>- `unpinned`<br/>- `closed`<br/>- `reopened`<br/>- `assigned`<br/>- `unassigned`<br/>- `labeled`<br/>- `unlabeled`<br/>- `locked`<br/>- `unlocked`<br/>- `milestoned`<br/> - `demilestoned`<br/> - `typed`<br/> - `untyped`{% ifversion issue-fields %}<br/> - `field_added`<br/> - `field_removed`{% endif %} | Last commit on default branch | Default branch |
319319

320320
> [!NOTE]
321321
> * {% data reusables.developer-site.multiple_activity_types %} For information about each activity type, see [AUTOTITLE](/webhooks-and-events/webhooks/webhook-events-and-payloads#issues). {% data reusables.developer-site.limit_workflow_to_activity_types %}
@@ -331,6 +331,18 @@ on:
331331
types: [opened, edited, milestoned]
332332
```
333333

334+
{% ifversion issue-fields %}
335+
336+
You can also run a workflow when an issue field value is set, changed, or cleared. The `field_added` activity type fires both when a field value is initially set and when an existing value is updated. The `field_removed` activity type fires when a field value is cleared.
337+
338+
```yaml
339+
on:
340+
issues:
341+
types: [field_added, field_removed]
342+
```
343+
344+
{% endif %}
345+
334346
## `label`
335347

336348
| Webhook event payload | Activity types | `GITHUB_SHA` | `GITHUB_REF` |

content/billing/concepts/product-billing/github-code-quality.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,35 @@ category:
1515
1616
## How use of {% data variables.product.prodname_code_quality %} is measured
1717

18-
### For general availability
19-
20-
When {% data variables.product.prodname_code_quality_short %} is generally available, scanning repositories will incur two types of costs for an organization:
21-
22-
* {% data variables.product.prodname_ai_credits_short %}
23-
* {% data variables.product.prodname_actions %} minutes needed to run the scans unless you use self-hosted runners
18+
{% data variables.product.prodname_code_quality_short %} billing depends on whether the product is generally available or in {% data variables.release-phases.public_preview %}. The product is anticipated to move from public preview to generally available in July, 2026, and this page will be updated accordingly.
2419

2520
### For the {% data variables.release-phases.public_preview %}
2621

27-
When you scan private repositories during the {% data variables.release-phases.public_preview %}, you **will not be billed** for {% data variables.product.prodname_ai_credits_short %} usage, but {% data variables.product.prodname_actions %} minutes **will be consumed**.
22+
When you scan private repositories during the {% data variables.release-phases.public_preview %}, you **will not be billed** for {% data variables.product.prodname_ai_credits_short %} or active committer usage, but {% data variables.product.prodname_actions %} minutes **will be consumed**.
2823

2924
To view consumption of actions by the `{% data variables.code-quality.workflow_name_billing %}` workflow, download a detailed usage report from the "Billing and licensing" tab. See [AUTOTITLE](/billing/how-tos/products/view-productlicense-use).
3025

3126
> [!NOTE]
3227
> {% data reusables.code-quality.shared-workflow-preview %}
3328
29+
### For general availability
30+
31+
When {% data variables.product.prodname_code_quality_short %} is generally available, use of the product will incur three types of costs for an organization:
32+
* **{% data variables.product.prodname_actions %} minutes** — {% data variables.product.prodname_code_quality_short %} scans run as {% data variables.product.prodname_actions %} workflows and consume {% data variables.product.prodname_actions %} minutes, unless you use self-hosted runners. For more information, see [AUTOTITLE](/billing/concepts/product-billing/github-actions).
33+
* **{% data variables.product.prodname_ai_credits %}** — {% data variables.product.prodname_code_quality_short %} features that use AI models consume {% data variables.product.prodname_ai_credits_short %}. Each interaction is priced based on the number of tokens consumed, where 1 {% data variables.product.prodname_ai_credit_singular %} = {% data variables.product.prodname_ai_credits_value %}. {% data reusables.code-quality.model-usage %} For more information about how {% data variables.product.prodname_ai_credits_short %} work, see [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises).
34+
* **Active committers** — Your license usage is calculated based on the number of unique, active committers to repositories with {% data variables.product.prodname_code_quality_short %} enabled. {% data variables.product.prodname_github_app %} bots are ignored. For information about differences between bot and machine accounts, see [AUTOTITLE](/apps/creating-github-apps/setting-up-a-github-app/differences-between-github-apps-and-oauth-apps#machine-vs-bot-accounts).
35+
36+
#### Active and unique committers
37+
38+
Each **active committer** to at least one repository with {% data variables.product.prodname_code_quality_short %} enabled uses **one license**. A committer is considered active if one of their commits has been pushed to the repository within the last 90 days, regardless of when it was originally authored.
39+
40+
* **Active committers** are committers who contributed to at least one repository and have a {% data variables.product.prodname_team %} or {% data variables.product.prodname_enterprise %} license with your organization or enterprise. That is, they are also a member, an enterprise-managed user, an external collaborator, or have a pending invitation to join your organization or enterprise.
41+
* **Unique committers** is the number of active committers who contributed only to one repository, or only to repositories in one organization. You can free up this number of licenses by disabling {% data variables.product.prodname_code_quality_short %} for that repository or organization.
42+
43+
Users can contribute to multiple repositories or organizations. Usage is measured across the whole organization or enterprise to ensure that each member uses one license regardless of how many repositories or organizations the user contributes to.
44+
3445
## Further reading
3546

3647
* [AUTOTITLE](/code-security/code-quality/get-started/quickstart)
37-
* [AUTOTITLE](/code-security/code-quality/how-tos/enable-code-quality)
48+
* [AUTOTITLE](/billing/concepts/product-billing/github-actions)
49+
* [AUTOTITLE](/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises)

content/code-security/concepts/secret-security/about-push-protection.md

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,3 @@ After you enable push protection for repositories, you can customize it by:
8989
* Designating contributors who can bypass push protection and approve bypass requests for other contributors{% ifversion push-protection-org-enterprise-exemptions %}, or are exempt from push protection entirely{% endif %}{% ifversion push-protected-pattern-configuration %}
9090
* Configuring which secret patterns are included in push protection at the enterprise or organization level{% endif %}
9191

92-
## Next steps
93-
94-
To enable push protection:
95-
* **For a repository**, see [AUTOTITLE](/code-security/secret-scanning/enabling-secret-scanning-features/enabling-push-protection-for-your-repository).
96-
{% ifversion security-configurations-cloud -%}
97-
* **For an organization or enterprise**, you need to apply a {% data variables.product.prodname_security_configuration %}. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/applying-the-github-recommended-security-configuration-in-your-organization) and [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/applying-the-github-recommended-security-configuration-to-your-enterprise).
98-
{% elsif security-configuration-enterprise-level -%}
99-
* **For an organization or enterprise**, you need to apply a {% data variables.product.prodname_security_configuration %}. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/creating-a-custom-security-configuration) and [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/creating-a-custom-security-configuration-for-your-enterprise).
100-
{% else -%}
101-
* **For an organization**, you need to apply a {% data variables.product.prodname_security_configuration %}. See [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/creating-a-custom-security-configuration).
102-
{% endif %}
103-
104-
For a list of secrets and service providers supported by push protection, see [AUTOTITLE](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).

content/code-security/concepts/secret-security/about-secret-scanning.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,3 @@ Validity checks are separate from {% data variables.product.prodname_secret_scan
7676
## How can I access this feature?
7777

7878
{% data reusables.gated-features.secret-scanning %}
79-
80-
## Next steps
81-
82-
* **If you've received an alert**, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning) to learn how to review, resolve, and remediate exposed secrets.
83-
{%- ifversion secret-risk-assessment %}
84-
* **If you're securing an organization**, see [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/assess-your-secret-risk) to determine your organization's exposure to leaked secrets.
85-
{% endif %}
86-
87-
## Further reading
88-
89-
* For a complete list of supported secrets and service providers, see [AUTOTITLE](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).

content/code-security/concepts/secret-security/push-protection-metrics.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,3 @@ You can see {% data variables.product.prodname_secret_scanning %} metrics for a
3434
* The `admin` role for the repository
3535
* A custom repository role with the "View {% data variables.product.prodname_secret_scanning %} alerts" fine-grained permissions for the repository
3636
* Access to alerts for the repository
37-
38-
## Next steps
39-
40-
To find your push protection metrics, see [AUTOTITLE](/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-secret-scanning-push-protection).

content/code-security/concepts/secret-security/secret-leakage-risks.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,3 @@ Encourage individual developers to enable push protection for their personal acc
8686
### 2. Detect existing secrets
8787

8888
Use **{% data variables.product.prodname_secret_scanning %}** to continuously monitor your repositories for hardcoded secrets and generate alerts when credentials are detected, enabling you to revoke and rotate compromised credentials quickly. Beyond default detection of provider patterns, you can expand scanning to non-provider patterns and define custom patterns for organization-specific secrets. This helps you gain visibility into secret sprawl across your organization.
89-
90-
## Next steps
91-
92-
To protect your organization from secret leakage:
93-
{% ifversion secret-risk-assessment %}
94-
1. Run a free secret risk assessment to understand your current exposure. {% data variables.secret-scanning.secret-risk-assessment-cta-product %}
95-
{% endif %}
96-
1. Enable push protection to prevent new secrets from being committed.
97-
1. Enable {% data variables.product.prodname_secret_scanning %} to begin detecting existing secret leaks.
98-
1. Establish secure credential management practices for your development teams.
99-
100-
{% ifversion secret-risk-assessment %}
101-
For an overview of {% data variables.product.github %}'s secret security features, see [AUTOTITLE](/code-security/concepts/secret-security/about-secret-security-with-github).
102-
{% endif %}

0 commit comments

Comments
 (0)