Skip to content

Commit effbe95

Browse files
authored
Merge branch 'main' into patch-1
2 parents b62d108 + c1ec927 commit effbe95

File tree

496 files changed

+3622
-1599
lines changed

Some content is hidden

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

496 files changed

+3622
-1599
lines changed

.github/branch_protection_settings/main.json

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@
4141
"workflows",
4242
"lint-code",
4343
"secret-scanning",
44-
"pagelist"
44+
"pagelist",
45+
"docs-internal-docker-image / docs-internal-docker-image",
46+
"docs-internal-docker-security / docs-internal-docker-security",
47+
"docs-internal-moda-config-bundle / docs-internal-moda-config-bundle"
4548
],
4649
"contexts_url": "https://api.github.com/repos/github/docs-internal/branches/main/protection/required_status_checks/contexts",
4750
"checks": [
@@ -85,7 +88,19 @@
8588
{ "context": "workflows", "app_id": 15368 },
8689
{ "context": "lint-code", "app_id": 15368 },
8790
{ "context": "secret-scanning", "app_id": 15368 },
88-
{ "context": "pagelist", "app_id": 15368 }
91+
{ "context": "pagelist", "app_id": 15368 },
92+
{
93+
"context": "docs-internal-docker-image / docs-internal-docker-image",
94+
"app_id": 15368
95+
},
96+
{
97+
"context": "docs-internal-docker-security / docs-internal-docker-security",
98+
"app_id": 15368
99+
},
100+
{
101+
"context": "docs-internal-moda-config-bundle / docs-internal-moda-config-bundle",
102+
"app_id": 15368
103+
}
89104
]
90105
},
91106
"restrictions": {

.github/workflows/azure-prod-build-deploy.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ name: Azure Production - Build and Deploy
55
# **Who does it impact**: All contributors.
66

77
on:
8-
push:
9-
branches:
10-
- main
118
workflow_dispatch:
129

1310
permissions:

.github/workflows/codeowners-legal.yml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ on:
2020
permissions:
2121
contents: read
2222
pull-requests: write
23+
repository-projects: read
2324

2425
jobs:
2526
codeowners-legal:
@@ -33,7 +34,7 @@ jobs:
3334
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
3435
with:
3536
# Picking this number is a "best guess". If we make it too large,
36-
# the checkout will take potentially unnecessariily long.
37+
# the checkout will take potentially unnecessarily long.
3738
# This reduces the chance that tj-actions/changed-files has to
3839
# fetch deeper history. But if it needs to, it will.
3940
fetch-depth: 10
@@ -58,19 +59,14 @@ jobs:
5859
CHANGED_FILE_PATHS: ${{ steps.changed-files.outputs.all_changed_files }}
5960
CONTENT_TYPE: 'rai'
6061

61-
- name: Add Legal team as a reviewer
62+
- name: Check for reviewers-legal label, add if missing and request review
6263
if: steps.checkContentType.outputs.containsContentType == 'true'
6364
env:
64-
# The GH CLI uses a slightly different env name for
65-
# the token than the GITHUB_TOKEN used by actions
66-
GH_TOKEN: ${{ secrets.DOCS_BOT_PAT_WRITEORG_PROJECT }}
65+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6766
PR: ${{ github.event.pull_request.html_url }}
6867
run: |
69-
has_reviewer=$(
70-
gh pr view $PR --json reviews |
71-
jq 'any(.reviews[]; select(length > 0))'
72-
)
73-
if ! $has_reviewer
74-
then
68+
labels=$(gh pr view ${{ github.event.pull_request.number }} --json labels --jq '.labels[].name')
69+
if ! echo "$labels" | grep -q 'reviewers-legal'; then
7570
gh pr edit $PR --add-reviewer github/legal-product
71+
gh pr edit $PR --add-label reviewers-legal
7672
fi

.github/workflows/purge-fastly.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ name: Purge Fastly
55
# **Who does it impact**: Writers and engineers.
66

77
on:
8+
deployment_status:
89
workflow_dispatch:
910
inputs:
1011
nuke_all:
@@ -16,9 +17,6 @@ on:
1617
description: "Comma separated languages. E.g. 'en,ja, es' (defaults to all)"
1718
required: false
1819
default: ''
19-
push:
20-
branches:
21-
- main
2220

2321
permissions:
2422
contents: read
@@ -29,11 +27,12 @@ env:
2927

3028
jobs:
3129
send-purges:
30+
# Run when workflow_dispatch is the event (manual) or when deployment_status is the event (automatic) and it's a successful production deploy
3231
if: >-
3332
${{
3433
github.repository == 'github/docs-internal' &&
35-
(github.event_name != 'workflow_run' ||
36-
github.event.workflow_run.conclusion == 'success')
34+
(github.event_name != 'deployment_status' ||
35+
github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'production')
3736
}}
3837
runs-on: ubuntu-latest
3938
steps:

config/kubernetes/production/deployments/webapp.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ spec:
2323
image: docs-internal
2424
resources:
2525
requests:
26-
cpu: 4000m
27-
memory: 5Gi
26+
cpu: 8000m
27+
memory: 10Gi
2828
limits:
29-
cpu: 4000m
29+
cpu: 16000m
3030
memory: 14Gi
3131
ports:
3232
- name: http

config/moda/deployment.yaml

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,36 @@
1-
required_builds:
2-
- docs-internal-moda-config-bundle / docs-internal-moda-config-bundle
3-
- docs-internal-docker-image / docs-internal-docker-image
4-
- docs-internal-docker-security / docs-internal-docker-security
1+
# Deploy configuration reference: https://thehub.github.com/epd/engineering/products-and-services/internal/moda/reference/deployment-yaml/
2+
53
environments:
64
- name: production
7-
auto_deploy: true
5+
require_pipeline: true
86
cluster_selector:
97
profile: general
108
region: iad
9+
10+
required_builds:
11+
- docs-internal-moda-config-bundle / docs-internal-moda-config-bundle
12+
- docs-internal-docker-image / docs-internal-docker-image
13+
- docs-internal-docker-security / docs-internal-docker-security
14+
15+
# Make the pipeline start automatically when a PR is enqueued
16+
auto_start_pipeline: production_rollout
17+
18+
pipelines:
19+
production_rollout:
20+
thread_notifications: true
21+
notify_users_via_dm: false
22+
timeout: 1200
23+
stages:
24+
- name: full_production
25+
kind: deployment
26+
start_message: We are now going to deploy {{app}}/{{ref}}! Please pause or cancel the pipeline after the deploy if you want more time before auto-merging your pull request(s).
27+
config:
28+
environment: production
29+
timeout: 1200
30+
# gates:
31+
# - kind: timer
32+
# duration: 1200
33+
1134
notifications:
1235
slack_channels:
1336
- '#docs-ops'

content/actions/administering-github-actions/usage-limits-billing-and-administration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ There are some limits on {% data variables.product.prodname_actions %} usage whe
4545
* **Job execution time** - Each job in a workflow can run for up to 6 hours of execution time. If a job reaches this limit, the job is terminated and fails to complete.
4646
{% data reusables.actions.usage-workflow-run-time %}
4747
{% data reusables.actions.usage-api-requests %}
48-
* **Webhook rate limit** - Each repository is limited to 1500 triggered events every 10 seconds.
48+
* **Webhook rate limit** - Each repository is limited to 1500 events triggering a workflow run every 10 seconds. When the limit is reached, the workflow runs that were supposed to be triggered by the webhook events will be blocked and will not be queued.
4949
* **Concurrent jobs** - The number of concurrent jobs you can run in your account depends on your {% data variables.product.prodname_dotcom %} plan, as well as the type of runner used. If exceeded, any additional jobs are queued.
5050

5151
**Standard {% data variables.product.prodname_dotcom %}-hosted runners**

content/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ The following processor architectures are supported for the self-hosted runner a
124124

125125
## Supported actions on self-hosted runners
126126

127+
All `actions/setup-LANGUAGE` action repositories currently support three platforms: macOS, Windows, and Ubuntu.
127128
Some extra configuration might be required to use actions from {% data variables.product.github %} with {% data variables.product.prodname_ghe_server %}, or to use the `actions/setup-LANGUAGE` actions with self-hosted runners that do not have internet access. For more information, see [AUTOTITLE](/admin/github-actions/managing-access-to-actions-from-githubcom) and contact your {% data variables.product.prodname_enterprise %} site administrator.
128129

129130
{% endif %}

content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ The scripts are automatically executed when the runner has the following environ
4949
* `ACTIONS_RUNNER_HOOK_JOB_STARTED`: The script defined in this environment variable is triggered when a job has been assigned to a runner, but before the job starts running.
5050
* `ACTIONS_RUNNER_HOOK_JOB_COMPLETED`: The script defined in this environment variable is triggered at the end of the job, after all the steps defined in the workflow have run.
5151

52-
To set these environment variables, you can either add them to the operating system, or add them to a file named `.env` within the self-hosted runner application directory (that is, the directory into which you downloaded and unpacked the runner software). For example, the following `.env` entry will have the runner automatically run a script, saved as `/opt/runner/cleanup_script.sh` on the runner machine, before each job runs:
52+
To set these environment variables, you can either add them to the operating system, or add them to a file named `.env` within the self-hosted runner application directory (that is, the directory into which you downloaded and unpacked the runner software). Note that any change to the `.env` file will require restarting the runner.
53+
For example, the following `.env` entry will have the runner automatically run a script, saved as `/opt/runner/cleanup_script.sh` on the runner machine, before each job runs:
5354

5455
```bash
5556
ACTIONS_RUNNER_HOOK_JOB_STARTED=/opt/runner/cleanup_script.sh

content/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ shortTitle: Use runners in a workflow
1717

1818
You can target self-hosted runners for use in a workflow based on the labels assigned to the runners{% ifversion target-runner-groups %}, or their group membership, or a combination of these{% endif %}.
1919

20-
>[!NOTE]Actions Runner Controller does not support multiple labels, only the name of the runner can be used in place of a label
20+
>[!IMPORTANT]Runner Scale Sets do not support multiple labels, only the name of the runner can be used in place of a label. See [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller).
2121
2222
## About self-hosted runner labels
2323

@@ -109,9 +109,9 @@ These labels operate cumulatively, so a self-hosted runner must have all four la
109109

110110
## Routing precedence for self-hosted runners
111111

112-
When routing a job to a self-hosted runner, {% data variables.product.prodname_dotcom %} looks for a runner that matches the job's `runs-on` labels{% ifversion target-runner-groups %} and/or groups{% endif %}:
112+
When routing a job to a self-hosted runner, {% data variables.product.prodname_dotcom %} looks for a runner that matches the job's `runs-on` labels{% ifversion target-runner-groups %} and groups{% endif %}:
113113

114-
* If {% data variables.product.prodname_dotcom %} finds an online and idle runner that matches the job's `runs-on` labels{% ifversion target-runner-groups %} and/or groups{% endif %}, the job is then assigned and sent to the runner.
114+
* If {% data variables.product.prodname_dotcom %} finds an online and idle runner that matches the job's `runs-on` labels{% ifversion target-runner-groups %} and groups{% endif %}, the job is then assigned and sent to the runner.
115115
* If the runner doesn't pick up the assigned job within 60 seconds, the job is re-queued so that a new runner can accept it.
116-
* If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels {% ifversion target-runner-groups %} and/or groups{% endif %}, then the job will remain queued until a runner comes online.
116+
* If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels {% ifversion target-runner-groups %} and groups{% endif %}, then the job will remain queued until a runner comes online.
117117
* If the job remains queued for more than 24 hours, the job will fail.

content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ For more information on reviewing jobs that reference an environment with requir
6666

6767
### Wait timer
6868

69-
Use a wait timer to delay a job for a specific amount of time after the job is initially triggered. The time (in minutes) must be an integer between 1 and 43,200 (30 days).
69+
Use a wait timer to delay a job for a specific amount of time after the job is initially triggered. The time (in minutes) must be an integer between 1 and 43,200 (30 days). Wait time will not count towards your billable time.
7070

7171
{% ifversion fpt %}
7272

content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,7 @@ The concurrent jobs and workflow execution times in {% data variables.product.pr
183183

184184
### Using different languages in {% data variables.product.prodname_actions %}
185185

186-
When working with different languages in {% data variables.product.prodname_actions %}, you can create a step in your job to set up your language dependencies. For more information about working with a particular language, see the specific guide:
187-
* [Building and testing Node.js](/actions/automating-builds-and-tests/building-and-testing-nodejs)
188-
* [Building and testing Python](/actions/automating-builds-and-tests/building-and-testing-python)
189-
* [Building and testing PowerShell](/actions/automating-builds-and-tests/building-and-testing-powershell)
190-
* [Building and testing Java with Maven](/actions/automating-builds-and-tests/building-and-testing-java-with-maven)
191-
* [Building and testing Java with Gradle](/actions/automating-builds-and-tests/building-and-testing-java-with-gradle)
192-
* [Building and testing Java with Ant](/actions/automating-builds-and-tests/building-and-testing-java-with-ant)
186+
When working with different languages in {% data variables.product.prodname_actions %}, you can create a step in your job to set up your language dependencies. For more information about working with a particular language, see [AUTOTITLE](/actions/use-cases-and-examples/building-and-testing).
193187

194188
## Executing scripts
195189

content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,16 @@ This guide gives an overview of how to configure GCP to trust {% data variables.
2929

3030
{% data reusables.actions.oidc-on-ghecom %}
3131

32+
{% ifversion ghes %}
33+
{% data reusables.actions.oidc-endpoints %}
34+
<!-- This note is indented to align with the above reusable. -->
35+
36+
> [!NOTE]
37+
> Google Cloud Platform does not have fixed IP ranges defined for these endpoints.
38+
39+
* Make sure that the value of the issuer claim that's included with the JSON Web Token (JWT) is set to a publicly routable URL. For more information, see [AUTOTITLE](/enterprise-server@latest/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect).
40+
{% endif %}
41+
3242
## Adding a Google Cloud Workload Identity Provider
3343

3444
To configure the OIDC identity provider in GCP, you will need to perform the following configuration. For instructions on making these changes, refer to [the GCP documentation](https://github.com/google-github-actions/auth).

content/actions/security-for-github-actions/using-artifact-attestations/enforcing-artifact-attestations-with-a-kubernetes-admission-controller.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ redirect_from:
99
- /actions/security-guides/enforcing-artifact-attestations-with-a-kubernetes-admission-controller
1010
---
1111

12+
>[!NOTE] Before proceeding, ensure you have enabled build provenance for container images, including setting the `push-to-registry` attribute in the [`attest-build-provenance` action](https://github.com/actions/attest-build-provenance) as documented in [Generating build provenance for container images](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds#generating-build-provenance-for-container-images). This is required for the Policy Controller to verify the attestation.
13+
1214
## About Kubernetes admission controller
1315

1416
[Artifact attestations](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds) enable you to create unfalsifiable provenance and integrity guarantees for the software you build. In turn, people who consume your software can verify where and how your software was built.
@@ -19,6 +21,12 @@ Using the open source [Sigstore Policy Controller](https://docs.sigstore.dev/pol
1921

2022
To [install the controller](#getting-started-with-kubernetes-admission-controller), we offer [two Helm charts](https://github.com/github/artifact-attestations-helm-charts): one for deploying the Sigstore Policy Controller, and another for loading the GitHub trust root and a default policy.
2123

24+
### About image verification
25+
26+
When the Policy Controller is installed, it will intercept all image pull requests and verify the attestation for the image. The attestation must be stored in the image registry as an [OCI attached artifact](https://oras.land/docs/concepts/reftypes/) containing a [Sigstore Bundle](https://docs.sigstore.dev/about/bundle/) which contains the attestation and cryptographic material (e.g. certificates and signatures) used to verify the attestation. A verification process is then performed that ensures the image was built with the specified build provenance and matches any policies enabled by the cluster administrator.
27+
28+
In order for an image to be verifiable, it must have a valid provenance attestation in the registry, which can be done by enabling the `push-to-registry: true` attribute in the `actions/attest-build-provenance` action. See [Generating build provenance for container images](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds#generating-build-provenance-for-container-images) for more details on how to generate attestations for container images.
29+
2230
### About trust roots and policies
2331

2432
The Sigstore Policy Controller is primarily configured with trust roots and policies, represented by the Custom Resources `TrustRoot` and `ClusterImagePolicy`. A `TrustRoot` represents a trusted distribution channel for the public key material used to verify attestations. A `ClusterImagePolicy` represents a policy for enforcing attestations on images.

content/actions/sharing-automations/creating-actions/creating-a-composite-action.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ Before you begin, you'll create a repository on {% data variables.product.github
155155

156156
The following workflow code uses the completed hello world action that you made in [AUTOTITLE](/actions/creating-actions/creating-a-composite-action#creating-an-action-metadata-file).
157157

158-
Copy the workflow code into a `.github/workflows/main.yml` file in another repository, replacing `actions` and `SHA` with the repository owner and the SHA of the commit you want to use, respectively. You can also replace the `who-to-greet` input with your name.
158+
Copy the workflow code into a `.github/workflows/main.yml` file in another repository, replacing `OWNER` and `SHA` with the repository owner and the SHA of the commit you want to use, respectively. You can also replace the `who-to-greet` input with your name.
159159

160160
```yaml copy
161161
on: [push]

content/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-maven.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ You can cache your dependencies to speed up your workflow runs. After a successf
117117
```yaml copy
118118
steps:
119119
- uses: {% data reusables.actions.action-checkout %}
120-
- name: Set up JDK 11
120+
- name: Set up JDK 17
121121
uses: {% data reusables.actions.action-setup-java %}
122122
with:
123123
java-version: '17'

content/actions/writing-workflows/quickstart.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ allowTitleToDifferFromFilename: true
55
redirect_from:
66
- /actions/getting-started-with-github-actions/starting-with-preconfigured-workflow-templates
77
- /actions/quickstart
8+
- /actions/getting-started-with-github-actions
89
versions:
910
fpt: '*'
1011
ghes: '*'

content/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Host HOSTNAME
6666

6767
## Accessing the administrative shell using the local console
6868

69-
In an emergency situation, for example if SSH is unavailable, you can access the administrative shell locally. Sign in as the `admin` user and use the password established during initial setup of {% data variables.product.prodname_ghe_server %}.
69+
In an emergency situation, for example if SSH is unavailable, you can access the administrative shell locally if your hypervisor provides console access. Press `Alt` + `F2` to switch to an interactive prompt, then sign in as the `admin` user and use the password established during initial setup of {% data variables.product.prodname_ghe_server %}.
7070

7171
## Access limitations for the administrative shell
7272

0 commit comments

Comments
 (0)