Skip to content

Commit de21dd8

Browse files
authored
Merge branch 'main' into patch-2
2 parents 32f3bf8 + cd82923 commit de21dd8

File tree

610 files changed

+9457
-6176
lines changed

Some content is hidden

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

610 files changed

+9457
-6176
lines changed

.github/actions-scripts/projects.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export function generateUpdateProjectNextItemFieldMutation({
190190
// Strip all non-alphanumeric out of the item ID when creating the mutation ID to avoid a GraphQL parsing error
191191
// (statistically, this should still give us a unique mutation ID)
192192
return `
193-
set_${fieldID.substr(1)}_item_${item.replaceAll(
193+
set_${fieldID.slice(1)}_item_${item.replaceAll(
194194
/[^a-z0-9]/g,
195195
''
196196
)}: updateProjectNextItemField(input: {

.github/workflows/browser-test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,8 @@ jobs:
5959
path: .next/cache
6060
key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }}
6161

62+
- name: Run build script
63+
run: npm run build
64+
6265
- name: Run browser-test
6366
run: npm run browser-test

.github/workflows/test.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,6 @@ jobs:
135135
- name: Run build script
136136
run: npm run build
137137

138-
- name: Warm possible disk caching
139-
env:
140-
NODE_ENV: test
141-
run: ./script/warm-before-tests.mjs
142-
143138
- name: Run tests
144139
env:
145140
DIFF_FILE: get_diff_files.txt

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ COPY --chown=node:node feature-flags.json ./
8989
COPY --chown=node:node data ./data
9090
COPY --chown=node:node next.config.js ./
9191
COPY --chown=node:node server.mjs ./server.mjs
92+
COPY --chown=node:node start-server.mjs ./start-server.mjs
9293

9394
EXPOSE $PORT
9495

components/article/ToolPicker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ const supportedTools = [
2020
'vscode',
2121
'importer_cli',
2222
'graphql',
23+
'powershell',
24+
'bash',
2325
]
2426
const toolTitles = {
2527
webui: 'Web browser',
@@ -30,6 +32,8 @@ const toolTitles = {
3032
vscode: 'Visual Studio Code',
3133
importer_cli: 'GitHub Enterprise Importer CLI',
3234
graphql: 'GraphQL API',
35+
powershell: 'PowerShell',
36+
bash: 'Bash',
3337
} as Record<string, string>
3438

3539
// Imperatively modify article content to show only the selected tool

content/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ defaultPlatform: linux
228228
### `defaultTool`
229229

230230
- Purpose: Override the initial tool selection for a page, where tool refers to the application the reader is using to work with GitHub (such as GitHub.com's web UI, the GitHub CLI, or GitHub Desktop) or the GitHub APIs (such as cURL or the GitHub CLI). For more information about the tool selector, see [Markup reference for GitHub Docs](../contributing/content-markup-reference.md#tool-tags). If this frontmatter is omitted, then the tool-specific content matching the GitHub web UI is shown by default. If a user has indicated a tool preference (by clicking on a tool tab), then the user's preference will be applied instead of the default value.
231-
- Type: `String`, one of: `webui`, `cli`, `desktop`, `curl`, `codespaces`, `vscode`, `importer_cli`, `graphql`.
231+
- Type: `String`, one of: `webui`, `cli`, `desktop`, `curl`, `codespaces`, `vscode`, `importer_cli`, `graphql`, `powershell`, `bash`.
232232
- Optional.
233233

234234
```yaml

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

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,29 @@ Some extra configuration might be required to use actions from {% data variables
133133

134134
## Communication between self-hosted runners and {% data variables.product.product_name %}
135135

136-
The self-hosted runner polls {% data variables.product.product_name %} to retrieve application updates and to check if any jobs are queued for processing. The self-hosted runner uses a HTTPS _long poll_ that opens a connection to {% data variables.product.product_name %} for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run {% data variables.product.prodname_actions %} jobs.
136+
The self-hosted runner connects to {% data variables.product.product_name %} to receive job assignments and to download new versions of the runner application. The self-hosted runner uses an {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} _long poll_ that opens a connection to {% data variables.product.product_name %} for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run {% data variables.product.prodname_actions %} jobs.
137137

138138
{% data reusables.actions.self-hosted-runner-ports-protocols %}
139139

140-
{% data reusables.actions.self-hosted-runner-communications-for-ghae %}
141-
142140
{% ifversion fpt or ghec %}
141+
Since the self-hosted runner opens a connection to {% data variables.product.product_location %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner.
142+
{% elsif ghes or ghae %}
143+
Only an outbound connection from the runner to {% data variables.product.product_location %} is required. There is no need for an inbound connection from {% data variables.product.product_location %} to the runner.
144+
{%- endif %}
145+
146+
{% ifversion ghes %}
147+
148+
{% data variables.product.product_name %} must accept inbound connections from your runners over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} at {% data variables.product.product_location %}'s hostname and API subdomain, and your runners must allow outbound connections over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} to {% data variables.product.product_location %}'s hostname and API subdomain.
143149

144-
Since the self-hosted runner opens a connection to {% data variables.product.prodname_dotcom %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner.
150+
{% elsif ghae %}
151+
152+
You must ensure that the self-hosted runner has appropriate network access to communicate with your {% data variables.product.product_name %} URL and its subdomains. For example, if your subdomain for {% data variables.product.product_name %} is `octoghae`, then you will need to allow the self-hosted runner to access `octoghae.githubenterprise.com`, `api.octoghae.githubenterprise.com`, and `codeload.octoghae.githubenterprise.com`.
153+
154+
If you use an IP address allow list, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)."
155+
156+
{% endif %}
157+
158+
{% ifversion fpt or ghec %}
145159

146160
You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} hosts listed below. Some hosts are required for essential runner operations, while other hosts are only required for certain functionality.
147161

@@ -191,34 +205,39 @@ If you use an IP address allow list for your {% data variables.product.prodname_
191205

192206
{% else %}
193207

194-
You must ensure that the machine has the appropriate network access to communicate with {% data variables.product.product_location %}.{% ifversion ghes %} Self-hosted runners connect directly to {% data variables.product.product_location %} and do not require any external internet access in order to function. As a result, you can use network routing to direct communication between the self-hosted runner and {% data variables.product.product_location %}. For example, you can assign a private IP address to your self-hosted runner and configure routing to send traffic to {% data variables.product.product_location %}, with no need for traffic to traverse a public network.{% endif %}
208+
{% ifversion ghes %}Self-hosted runners do not require any external internet access in order to function. As a result, you can use network routing to direct communication between the self-hosted runner and {% data variables.product.product_location %}. For example, you can assign a private IP address to your self-hosted runner and configure routing to send traffic to {% data variables.product.product_location %}, with no need for traffic to traverse a public network.{% endif %}
195209

196210
{% endif %}
197211

212+
{% ifversion ghae %}
213+
If you use an IP address allow list for your {% data variables.product.prodname_dotcom %} organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. For more information, see "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)."
214+
{% endif %}
215+
198216
You can also use self-hosted runners with a proxy server. For more information, see "[Using a proxy server with self-hosted runners](/actions/automating-your-workflow-with-github-actions/using-a-proxy-server-with-self-hosted-runners)."
199217

200218
For more information about troubleshooting common network connectivity issues, see "[Monitoring and troubleshooting self-hosted runners](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#troubleshooting-network-connectivity)."
201219

202-
{% ifversion ghes %}
220+
{% ifversion ghes or ghae %}
203221

204222
## Communication between self-hosted runners and {% data variables.product.prodname_dotcom_the_website %}
205223

206-
Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have [enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect).
224+
Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions for {% data variables.product.product_location %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."
207225

208-
If you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}, then the self-hosted runner will connect directly to {% data variables.product.prodname_dotcom_the_website %} to download actions. You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below.
209-
210-
{% note %}
211-
212-
**Note:** Some of the domains listed below are configured using `CNAME` records. Some firewalls might require you to add rules recursively for all `CNAME` records. Note that the `CNAME` records might change in the future, and that only the domains listed below will remain constant.
213-
214-
{% endnote %}
226+
If you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions, then the self-hosted runner will connect directly to {% data variables.product.prodname_dotcom_the_website %} to download actions. You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below.
215227

216228
```
217229
github.com
218230
api.github.com
219231
codeload.github.com
220232
```
221233

234+
{% note %}
235+
236+
**Note:** Some of the domains listed above are configured using `CNAME` records. Some firewalls might require you to add rules recursively for all `CNAME` records. Note that the `CNAME` records might change in the future, and that only the domains listed above will remain constant.
237+
238+
{% endnote %}
239+
240+
222241
{% endif %}
223242

224243
## Self-hosted runner security

content/actions/security-guides/encrypted-secrets.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,10 @@ steps:
227227
```
228228
{% endraw %}
229229
230+
Secrets cannot be directly referenced in `if:` conditionals. Instead, consider setting secrets as job-level environment variables, then referencing the environment variables to conditionally run steps in the job. For more information, see "[Context availability](/actions/learn-github-actions/contexts#context-availability)" and [`jobs.<job_id>.steps[*].if`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsif).
231+
232+
If a secret has not been set, the return value of an expression referencing the secret (such as {% raw %}`${{ secrets.SuperSecret }}`{% endraw %} in the example) will be an empty string.
233+
230234
Avoid passing secrets between processes from the command line, whenever possible. Command-line processes may be visible to other users (using the `ps` command) or captured by [security audit events](https://docs.microsoft.com/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing). To help protect secrets, consider using environment variables, `STDIN`, or other mechanisms supported by the target process.
231235
232236
If you must pass secrets within a command line, then enclose them within the proper quoting rules. Secrets often contain special characters that may unintentionally affect your shell. To escape these special characters, use quoting with your environment variables. For example:

0 commit comments

Comments
 (0)