1
0
mirror of synced 2026-01-09 06:03:09 -05:00

Merge branch 'main' into copilot-ga-megabranch

This commit is contained in:
Jules
2022-06-16 07:50:24 +02:00
committed by GitHub
163 changed files with 6268 additions and 5426 deletions

View File

@@ -1,42 +0,0 @@
name: Pa11y
# **What it does**: Runs a static accessibility check on high traffic docs pages.
# **Why we have it**: We want accessibility support for the docs.
# **Who does it impact**: Docs engineering, users who need accessibility features.
on:
workflow_dispatch:
schedule:
- cron: '25 17 * * *' # once a day at 17:25 UTC / 11:50 PST
permissions:
contents: read
jobs:
test:
if: github.repository == 'github/docs-internal' || github.repository == 'github/docs'
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748
- name: Setup Node
uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048
with:
node-version: '16.15.0'
cache: npm
- name: Install dependencies
run: npm ci --include=optional
- name: Cache nextjs build
uses: actions/cache@48af2dc4a9e8278b89d7fa154b955c30c6aaab09
with:
path: .next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }}
- name: Run build scripts
run: npm run build
- name: Run pa11y tests
run: npm run pa11y-test

102
.pa11yci
View File

@@ -1,102 +0,0 @@
{
"urls": [
"http://localhost:4001/en",
"http://localhost:4001/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent",
"http://localhost:4001/en/github/working-with-github-pages",
"http://localhost:4001/en/github/authenticating-to-github/connecting-to-github-with-ssh",
"http://localhost:4001/en/github/site-policy/github-terms-of-service",
"http://localhost:4001/en/github/site-policy/github-privacy-statement",
"http://localhost:4001/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account",
"http://localhost:4001/en/github/authenticating-to-github/creating-a-strong-password",
"http://localhost:4001/en/github",
"http://localhost:4001/en/github/importing-your-projects-to-github/adding-locally-hosted-code-to-github",
"http://localhost:4001/en/actions",
"http://localhost:4001/en/github/authenticating-to-github/creating-a-personal-access-token",
"http://localhost:4001/en/github/authenticating-to-github/checking-for-existing-ssh-keys",
"http://localhost:4001/en/github/getting-started-with-github/managing-remote-repositories",
"http://localhost:4001/en/github/getting-started-with-github/set-up-git",
"http://localhost:4001/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository",
"http://localhost:4001/en/github/writing-on-github/basic-writing-and-formatting-syntax",
"http://localhost:4001/en/actions/reference/workflow-syntax-for-github-actions",
"http://localhost:4001/en/github/getting-started-with-github/about-remote-repositories",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line",
"http://localhost:4001/en/github/getting-started-with-github/setting-your-username-in-git",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address",
"http://localhost:4001/en/github/authenticating-to-github/configuring-two-factor-authentication",
"http://localhost:4001/en/rest",
"http://localhost:4001/en/pages/configuring-a-custom-domain-for-your-github-pages-site",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-user-account/changing-your-primary-email-address",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-profile/why-are-my-contributions-not-showing-up-on-my-profile",
"http://localhost:4001/en/github/authenticating-to-github/error-permission-denied-publickey",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository",
"http://localhost:4001/en/github/committing-changes-to-your-project/changing-a-commit-message",
"http://localhost:4001/en/github/getting-started-with-github/types-of-github-accounts",
"http://localhost:4001/en/github/using-git/pushing-commits-to-a-remote-repository",
"http://localhost:4001/en/github/authenticating-to-github/testing-your-ssh-connection",
"http://localhost:4001/en/github/getting-started-with-github/fork-a-repo",
"http://localhost:4001/en/graphql",
"http://localhost:4001/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site",
"http://localhost:4001/en/developers",
"http://localhost:4001/en/github/getting-started-with-github/supported-browsers",
"http://localhost:4001/en/github/managing-your-work-on-github/about-project-boards",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork",
"http://localhost:4001/en/pages/getting-started-with-github-pages/creating-a-github-pages-site",
"http://localhost:4001/en/github/authenticating-to-github/working-with-ssh-key-passphrases",
"http://localhost:4001/en/github/authenticating-to-github",
"http://localhost:4001/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-npm-for-use-with-github-packages",
"http://localhost:4001/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site",
"http://localhost:4001/en/pages/getting-started-with-github-pages/about-github-pages",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-profile",
"http://localhost:4001/en/actions/getting-started-with-github-actions/about-github-actions",
"http://localhost:4001/en/github/getting-started-with-github",
"http://localhost:4001/en/github/creating-cloning-and-archiving-repositories/duplicating-a-repository",
"http://localhost:4001/en/actions/getting-started-with-github-actions",
"http://localhost:4001/en/actions/reference/events-that-trigger-workflows",
"http://localhost:4001/en/desktop/getting-started-with-github-desktop/installing-github-desktop",
"http://localhost:4001/en/github/getting-started-with-github/ignoring-files",
"http://localhost:4001/en/desktop",
"http://localhost:4001/en/packages",
"http://localhost:4001/en/actions/configuring-and-managing-workflows/configuring-a-workflow",
"http://localhost:4001/en/github/authenticating-to-github/managing-commit-signature-verification",
"http://localhost:4001/en/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions",
"http://localhost:4001/en/github/managing-files-in-a-repository/adding-a-file-to-a-repository-using-the-command-line",
"http://localhost:4001/en/github/getting-started-with-github/access-permissions-on-github",
"http://localhost:4001/en/github/getting-started-with-github/githubs-products",
"http://localhost:4001/en/packages/publishing-and-managing-packages/about-github-packages",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-reviews",
"http://localhost:4001/en/github/writing-on-github/creating-and-highlighting-code-blocks",
"http://localhost:4001/en/github/searching-for-information-on-github/searching-issues-and-pull-requests",
"http://localhost:4001/en/actions/reference/context-and-expression-syntax-for-github-actions",
"http://localhost:4001/en/github/managing-files-in-a-repository/navigating-code-on-github",
"http://localhost:4001/en/github/teaching-and-learning-with-github-education/applying-for-a-student-developer-pack",
"http://localhost:4001/en/github/getting-started-with-github/caching-your-github-credentials-in-git",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-user-account/changing-your-github-username",
"http://localhost:4001/en/github/getting-started-with-github/create-a-repo",
"http://localhost:4001/en/pages/getting-started-with-github-pages",
"http://localhost:4001/en/github/administering-a-repository/deleting-a-repository",
"http://localhost:4001/en/actions/configuring-and-managing-workflows/using-environment-variables",
"http://localhost:4001/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets",
"http://localhost:4001/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository",
"http://localhost:4001/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line",
"http://localhost:4001/en/github/setting-up-and-managing-billing-and-payments-on-github/setting-your-billing-email",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-user-account",
"http://localhost:4001/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue",
"http://localhost:4001/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates",
"http://localhost:4001/en/github/authenticating-to-github/about-two-factor-authentication",
"http://localhost:4001/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages",
"http://localhost:4001/en/github/searching-for-information-on-github/searching-code",
"http://localhost:4001/en/github/getting-started-with-github/configuring-git-to-handle-line-endings",
"http://localhost:4001/en/github/getting-started-with-github/getting-changes-from-a-remote-repository",
"http://localhost:4001/en/github/authenticating-to-github/generating-a-new-gpg-key",
"http://localhost:4001/en/github/authenticating-to-github/accessing-github-using-two-factor-authentication",
"http://localhost:4001/en/github/creating-cloning-and-archiving-repositories/licensing-a-repository",
"http://localhost:4001/en/github/getting-started-with-github/verifying-your-email-address",
"http://localhost:4001/en/github/setting-up-and-managing-your-github-profile/personalizing-your-profile",
"http://localhost:4001/en/pages/setting-up-a-github-pages-site-with-jekyll",
"http://localhost:4001/en/github/managing-subscriptions-and-notifications-on-github",
"http://localhost:4001/en/github/collaborating-with-issues-and-pull-requests/configuring-a-remote-for-a-fork"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

@@ -8,8 +8,11 @@ export type LearningTrack = {
}
export type MiniTocItem = {
platform: string
contents: string
platform?: string
contents: {
href: string
title: string
}
items?: MiniTocItem[]
}

View File

@@ -1,10 +1,5 @@
import { createContext, useContext } from 'react'
export type MiniTocItem = {
platform: string
contents: string & { title: string; href: string }
items?: MiniTocItem[]
}
import type { MiniTocItem } from 'components/context/ArticleContext'
export type RestContextT = {
title: string

View File

@@ -7,7 +7,8 @@ import { ActionList } from '@primer/react'
import { Link } from 'components/Link'
import { ProductTreeNode } from 'components/context/MainContext'
import { EventType, sendEvent } from 'components/lib/events'
import { MiniTocItem, useRestContext } from 'components/context/RestContext'
import { useRestContext } from 'components/context/RestContext'
import type { MiniTocItem } from 'components/context/ArticleContext'
import styles from './SidebarProduct.module.scss'
type SectionProps = {

View File

@@ -1,7 +1,7 @@
import cx from 'classnames'
import { ActionList, Heading } from '@primer/react'
import { MiniTocItem } from 'components/context/ArticleContext'
import type { MiniTocItem } from 'components/context/ArticleContext'
import { Link } from 'components/Link'
import { useTranslation } from 'components/hooks/useTranslation'
@@ -14,7 +14,7 @@ const renderTocItem = (item: MiniTocItem) => {
return (
<ActionList.Item
as="li"
key={item.contents}
key={item.contents.href}
className={item.platform}
sx={{
listStyle: 'none',
@@ -30,7 +30,9 @@ const renderTocItem = (item: MiniTocItem) => {
}}
>
<div className={cx('lh-condensed d-block width-full')}>
<div dangerouslySetInnerHTML={{ __html: item.contents }} />
<a className="d-block width-auto" href={item.contents.href}>
{item.contents.title}
</a>
{item.items && item.items.length > 0 ? (
<ul className="ml-3">{item.items.map(renderTocItem)}</ul>
) : null}

View File

@@ -0,0 +1,530 @@
---
title: Customizing the containers used by jobs
intro: 'You can customize how your self-hosted runner invokes a container for a job.'
versions:
feature: 'container-hooks'
type: reference
miniTocMaxHeadingLevel: 4
shortTitle: Customize containers used by jobs
---
{% note %}
**Note**: This feature is currently in beta and is subject to change.
{% endnote %}
## About container customization
{% data variables.product.prodname_actions %} allows you to run a job within a container, using the `container:` statement in your workflow file. For more information, see "[Running jobs in a container](/actions/using-jobs/running-jobs-in-a-container)." To process container-based jobs, the self-hosted runner creates a container for each job.
{% data variables.product.prodname_actions %} supports commands that let you customize the way your containers are created by the self-hosted runner. For example, you can use these commands to manage the containers through Kubernetes or Podman, and you can also customize the `docker run` or `docker create` commands used to invoke the container. The customization commands are run by a script, which is automatically triggered when a specific environment variable is set on the runner. For more information, see "[Triggering the customization script](#triggering-the-customization-script)" below.
This customization is only available for Linux-based self-hosted runners, and root user access is not required.
## Container customization commands
{% data variables.product.prodname_actions %} includes the following commands for container customization:
- [`prepare_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#prepare_job): Called when a job is started.
- [`cleanup_job`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#cleanup_job): Called at the end of a job.
- [`run_container_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_container_step): Called once for each container action in the job.
- [`run_script_step`](/actions/hosting-your-own-runners/customizing-the-containers-used-by-jobs#run_script_step): Runs any step that is not a container action.
Each of these customization commands must be defined in its own JSON file. The file name must match the command name, with the extension `.json`. For example, the `prepare_job` command is defined in `prepare_job.json`. These JSON files will then be run together on the self-hosted runner, as part of the main `index.js` script. This process is described in more detail in "[Generating the customization script](#generating-the-customization-script)."
These commands also include configuration arguments, explained below in more detail.
### `prepare_job`
The `prepare_job` command is called when a job is started. {% data variables.product.prodname_actions %} passes in any job or service containers the job has. This command will be called if you have any service or job containers in the job.
{% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `prepare_job` command:
- Prune anything from previous jobs, if needed.
- Create a network, if needed.
- Pull the job and service containers.
- Start the job container.
- Start the service containers.
- Write to the response file any information that {% data variables.product.prodname_actions %} will need:
- Required: State whether the container is an `alpine` linux container (using the `isAlpine` boolean).
- Optional: Any context fields you want to set on the job context, otherwise they will be unavailable for users to use. For more information, see "[`job` context](/actions/learn-github-actions/contexts#job-context)."
- Return `0` when the health checks have succeeded and the job/service containers are started.
#### Arguments
- `jobContainer`: **Optional**. An object containing information about the specified job container.
- `image`: **Required**. A string containing the Docker image.
- `workingDirectory`: **Required**. A string containing the absolute path of the working directory.
- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)."
- `environmentVariables`: **Optional**. Sets a map of key environment variables.
- `userMountVolumes`: **Optional**. An array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)."
- `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container.
- `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container.
- `readOnly`: **Required**. Determines whether or not the mount should be read-only.
- `systemMountVolumes`: **Required**. An array of mounts to mount into the container, same fields as above.
- `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container.
- `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container.
- `readOnly`: **Required**. Determines whether or not the mount should be read-only.
- `registry` **Optional**. The Docker registry credentials for a private container registry.
- `username`: **Optional**. The username of the registry account.
- `password`: **Optional**. The password to the registry account.
- `serverUrl`: **Optional**. The registry URL.
- `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container.
- `services`: **Optional**. An array of service containers to spin up.
- `contextName`: **Required**. The name of the service in the Job context.
- `image`: **Required**. A string containing the Docker image.
- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)."
- `environmentVariables`: **Optional**. Sets a map of key environment variables.
- `userMountVolumes`: **Optional**. An array of mounts to mount into the container, same fields as above.
- `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container.
- `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container.
- `readOnly`: **Required**. Determines whether or not the mount should be read-only.
- `registry` **Optional**. The Docker registry credentials for the private container registry.
- `username`: **Optional**. The username of the registry account.
- `password`: **Optional**. The password to the registry account.
- `serverUrl`: **Optional**. The registry URL.
- `portMappings`: **Optional**. A key value hash of _source:target_ ports to map into the container.
#### Example input
```json{:copy}
{
"command": "prepare_job",
"responseFile": "/users/octocat/runner/_work/{guid}.json",
"state": {},
"args": {
"jobContainer": {
"image": "node:14.16",
"workingDirectory": "/__w/octocat-test2/octocat-test2",
"createOptions": "--cpus 1",
"environmentVariables": {
"NODE_ENV": "development"
},
"userMountVolumes": [
{
"sourceVolumePath": "my_docker_volume",
"targetVolumePath": "/volume_mount",
"readOnly": false
}
],
"systemMountVolumes": [
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work",
"targetVolumePath": "/__w",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/externals",
"targetVolumePath": "/__e",
"readOnly": true
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp",
"targetVolumePath": "/__w/_temp",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions",
"targetVolumePath": "/__w/_actions",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool",
"targetVolumePath": "/__w/_tool",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home",
"targetVolumePath": "/github/home",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow",
"targetVolumePath": "/github/workflow",
"readOnly": false
}
],
"registry": {
"username": "octocat",
"password": "examplePassword",
"serverUrl": "https://index.docker.io/v1"
},
"portMappings": { "80": "801" }
},
"services": [
{
"contextName": "redis",
"image": "redis",
"createOptions": "--cpus 1",
"environmentVariables": {},
"userMountVolumes": [],
"portMappings": { "80": "801" },
"registry": {
"username": "octocat",
"password": "examplePassword",
"serverUrl": "https://index.docker.io/v1"
}
}
]
}
}
```
#### Example output
This example output is the contents of the `responseFile` defined in the input above.
```json{:copy}
{
"state": {
"network": "example_network_53269bd575972817b43f7733536b200c",
"jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480",
"serviceContainers": {
"redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105"
}
},
"context": {
"container": {
"id": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480",
"network": "example_network_53269bd575972817b43f7733536b200c"
},
"services": {
"redis": {
"id": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105",
"ports": {
"8080": "8080"
},
"network": "example_network_53269bd575972817b43f7733536b200c"
}
},
"isAlpine": true
}
}
```
### `cleanup_job`
The `cleanup_job` command is called at the end of a job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `cleanup_job` command:
- Stop any running service or job containers (or the equivalent pod).
- Stop the network (if one exists).
- Delete any job or service containers (or the equivalent pod).
- Delete the network (if one exists).
- Cleanup anything else that was created for the job.
#### Arguments
No arguments are provided for `cleanup_job`.
#### Example input
```json{:copy}
{
"command": "cleanup_job",
"responseFile": null,
"state": {
"network": "example_network_53269bd575972817b43f7733536b200c",
"jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480",
"serviceContainers": {
"redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105"
}
},
"args": {}
}
```
#### Example output
No output is expected for `cleanup_job`.
### `run_container_step`
The `run_container_step` command is called once for each container action in your job. {% data variables.product.prodname_actions %} assumes that you will do the following tasks in the `run_container_step` command:
- Pull or build the required container (or fail if you cannot).
- Run the container action and return the exit code of the container.
- Stream any step logs output to stdout and stderr.
- Cleanup the container after it executes.
#### Arguments
- `image`: **Optional**. A string containing the docker image. Otherwise a dockerfile must be provided.
- `dockerfile`: **Optional**. A string containing the path to the dockerfile, otherwise an image must be provided.
- `entryPointArgs`: **Optional**. A list containing the entry point args.
- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten.
- `workingDirectory`: **Required**. A string containing the absolute path of the working directory.
- `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)."
- `environmentVariables`: **Optional**. Sets a map of key environment variables.
- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable.
- `userMountVolumes`: **Optional**. an array of user mount volumes set in the YAML. For more information, see "[Example: Running a job within a container](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)."
- `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container.
- `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container.
- `readOnly`: **Required**. Determines whether or not the mount should be read-only.
- `systemMountVolumes`: **Required**. An array of mounts to mount into the container, using the same fields as above.
- `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container.
- `targetVolumePath`: **Required**. The target path to the volume that will be mounted into the Docker container.
- `readOnly`: **Required**. Determines whether or not the mount should be read-only.
- `registry` **Optional**. The Docker registry credentials for a private container registry.
- `username`: **Optional**. The username of the registry account.
- `password`: **Optional**. The password to the registry account.
- `serverUrl`: **Optional**. The registry URL.
- `portMappings`: **Optional**. A key value hash of the _source:target_ ports to map into the container.
#### Example input for image
If you're using a Docker image, you can specify the image name in the `"image":` parameter.
```json{:copy}
{
"command": "run_container_step",
"responseFile": null,
"state": {
"network": "example_network_53269bd575972817b43f7733536b200c",
"jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480",
"serviceContainers": {
"redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105"
}
},
"args": {
"image": "node:14.16",
"dockerfile": null,
"entryPointArgs": ["-f", "/dev/null"],
"entryPoint": "tail",
"workingDirectory": "/__w/octocat-test2/octocat-test2",
"createOptions": "--cpus 1",
"environmentVariables": {
"NODE_ENV": "development"
},
"prependPath": ["/foo/bar", "bar/foo"],
"userMountVolumes": [
{
"sourceVolumePath": "my_docker_volume",
"targetVolumePath": "/volume_mount",
"readOnly": false
}
],
"systemMountVolumes": [
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work",
"targetVolumePath": "/__w",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/externals",
"targetVolumePath": "/__e",
"readOnly": true
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp",
"targetVolumePath": "/__w/_temp",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions",
"targetVolumePath": "/__w/_actions",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool",
"targetVolumePath": "/__w/_tool",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home",
"targetVolumePath": "/github/home",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow",
"targetVolumePath": "/github/workflow",
"readOnly": false
}
],
"registry": null,
"portMappings": { "80": "801" }
}
}
```
#### Example input for Dockerfile
If your container is defined by a Dockerfile, this example demonstrates how to specify the path to a `Dockerfile` in your input, using the `"dockerfile":` parameter.
```json{:copy}
{
"command": "run_container_step",
"responseFile": null,
"state": {
"network": "example_network_53269bd575972817b43f7733536b200c",
"jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480",
"services": {
"redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105"
}
},
"args": {
"image": null,
"dockerfile": "/__w/_actions/foo/dockerfile",
"entryPointArgs": ["hello world"],
"entryPoint": "echo",
"workingDirectory": "/__w/octocat-test2/octocat-test2",
"createOptions": "--cpus 1",
"environmentVariables": {
"NODE_ENV": "development"
},
"prependPath": ["/foo/bar", "bar/foo"],
"userMountVolumes": [
{
"sourceVolumePath": "my_docker_volume",
"targetVolumePath": "/volume_mount",
"readOnly": false
}
],
"systemMountVolumes": [
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work",
"targetVolumePath": "/__w",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/externals",
"targetVolumePath": "/__e",
"readOnly": true
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp",
"targetVolumePath": "/__w/_temp",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_actions",
"targetVolumePath": "/__w/_actions",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_tool",
"targetVolumePath": "/__w/_tool",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_home",
"targetVolumePath": "/github/home",
"readOnly": false
},
{
"sourceVolumePath": "/home/octocat/git/runner/_layout/_work/_temp/_github_workflow",
"targetVolumePath": "/github/workflow",
"readOnly": false
}
],
"registry": null,
"portMappings": { "80": "801" }
}
}
```
#### Example output
No output is expected for `run_container_step`.
### `run_script_step`
{% data variables.product.prodname_actions %} assumes that you will do the following tasks:
- Invoke the provided script inside the job container and return the exit code.
- Stream any step log output to stdout and stderr.
#### Arguments
- `entryPointArgs`: **Optional**. A list containing the entry point arguments.
- `entryPoint`: **Optional**. The container entry point to use if the default image entrypoint should be overwritten.
- `prependPath`: **Optional**. An array of additional paths to prepend to the `$PATH` variable.
- `workingDirectory`: **Required**. A string containing the absolute path of the working directory.
- `environmentVariables`: **Optional**. Sets a map of key environment variables.
#### Example input
```json{:copy}
{
"command": "run_script_step",
"responseFile": null,
"state": {
"network": "example_network_53269bd575972817b43f7733536b200c",
"jobContainer": "82e8219701fe096a35941d869cf3d71af1d943b5d8bdd718857fb87ac3042480",
"serviceContainers": {
"redis": "60972d9aa486605e66b0dad4abb678dc3d9116f536579e418176eedb8abb9105"
}
},
"args": {
"entryPointArgs": ["-e", "/runner/temp/example.sh"],
"entryPoint": "bash",
"environmentVariables": {
"NODE_ENV": "development"
},
"prependPath": ["/foo/bar", "bar/foo"],
"workingDirectory": "/__w/octocat-test2/octocat-test2"
}
}
```
#### Example output
No output is expected for `run_script_step`.
## Generating the customization script
{% data variables.product.prodname_dotcom %} has created an example repository that demonstrates how to generate customization scripts for Docker and Kubernetes.
{% note %}
**Note:** The resulting scripts are available for testing purposes, and you will need to determine whether they are appropriate for your requirements.
{% endnote %}
1. Clone the [actions/runner-container-hooks](https://github.com/actions/runner-container-hooks) repository to your self-hosted runner.
1. The `examples/` directory contains some existing customization commands, each with its own JSON file. You can review these examples and use them as a starting point for your own customization commands.
- `prepare_job.json`
- `run_script_step.json`
- `run_container_step.json`
1. Build the npm packages. These commands generate the `index.js` files inside `packages/docker/dist` and `packages/k8s/dist`.
```shell
npm install && npm run bootstrap && npm run build-all
```
When the resulting `index.js` is triggered by {% data variables.product.prodname_actions %}, it will run the customization commands defined in the JSON files. To trigger the `index.js`, you will need to add it your `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` environment variable, as described in the next section.
## Triggering the customization script
The custom script must be located on the runner, but should not be stored in the self-hosted runner application directory. The scripts are executed in the security context of the service account that's running the runner service.
{% note %}
**Note**: The triggered script is processed synchronously, so it will block job execution while running.
{% endnote %}
The script is automatically executed when the runner has the following environment variable containing an absolute path to the script:
- `ACTIONS_RUNNER_CONTAINER_HOOK`: The script defined in this environment variable is triggered when a job has been assigned to a runner, but before the job starts running.
To set this environment variable, you can either add it to the operating system, or add it to a file named `.env` within the self-hosted runner application directory. For example, the following `.env` entry will have the runner automatically run the script at `/Users/octocat/runner/index.js` before each container-based job runs:
```bash
ACTIONS_RUNNER_CONTAINER_HOOK=/Users/octocat/runner/index.js
```
If you want to ensure that your job always runs inside a container, and subsequently always applies your container customizations, you can set the `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` variable on the self hosted runner to `true`. This will fail jobs that do not specify a job container.
## Troubleshooting
### No timeout setting
There is currently no timeout setting available for the script executed by `ACTIONS_RUNNER_CONTAINER_HOOK`. As a result, you could consider adding timeout handling to your script.
### Reviewing the workflow run log
To confirm whether your scripts are executing, you can review the logs for that job. For more information on checking the logs, see "[Viewing logs to diagnose failures](/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs#viewing-logs-to-diagnose-failures)."

View File

@@ -20,6 +20,7 @@ children:
- /adding-self-hosted-runners
- /autoscaling-with-self-hosted-runners
- /running-scripts-before-or-after-a-job
- /customizing-the-containers-used-by-jobs
- /configuring-the-self-hosted-runner-application-as-a-service
- /using-a-proxy-server-with-self-hosted-runners
- /using-labels-with-self-hosted-runners

View File

@@ -42,7 +42,6 @@ If you purchased {% data variables.product.prodname_enterprise %} through a Micr
### Billing for {% data variables.product.prodname_codespaces %} prebuilds
{% data reusables.codespaces.prebuilds-beta-note %}
{% data reusables.codespaces.billing-for-prebuilds %}

View File

@@ -1,7 +1,7 @@
---
title: About Codespaces prebuilds
shortTitle: About prebuilds
intro: Codespaces prebuilds help to speed up the creation of new codespaces.
intro: Codespaces prebuilds help to speed up the creation of new codespaces for large or complex repositories.
versions:
fpt: '*'
ghec: '*'
@@ -10,15 +10,13 @@ topics:
product: '{% data reusables.gated-features.codespaces %}'
---
{% data reusables.codespaces.prebuilds-beta-note %}
## Overview
Prebuilding your codespaces allows you to be more productive and access your codespace faster, regardless of the size and complexity of your project. This is because any source code, editor extensions, project dependencies, commands, and configurations have already been downloaded, installed, and applied before you create a codespace for your project. Think of a prebuild as a "ready-to-go" template for a codespace.
Prebuilding your codespaces allows you to be more productive and access your codespace faster, particularly if your repository is large or complex and new codespaces currently take more than 2 minutes to start. This is because any source code, editor extensions, project dependencies, commands, and configurations have already been downloaded, installed, and applied before you create a codespace for your project. Think of a prebuild as a "ready-to-go" template for a codespace.
By default, whenever you push changes to your repository, {% data variables.product.prodname_codespaces %} uses {% data variables.product.prodname_actions %} to automatically update your prebuilds.
When prebuilds are available for a particular branch of a repository, and for your region, you'll see the "{% octicon "zap" aria-label="The zap icon" %} Prebuild ready" label in the list of machine type options when you create a codespace. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)."
When prebuilds are available for a particular branch of a repository, and for your region, you'll see the "{% octicon "zap" aria-label="The zap icon" %} Prebuild ready" label in the list of machine type options when you create a codespace. If a prebuild is still being created, you will see the "{% octicon "history" aria-label="The history icon" %} Prebuild in progress" label. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)."
![The dialog box for choosing a machine type](/assets/images/help/codespaces/choose-custom-machine-type.png)

View File

@@ -13,8 +13,6 @@ product: '{% data reusables.gated-features.codespaces %}'
permissions: People with admin access to a repository can configure prebuilds for the repository.
---
{% data reusables.codespaces.prebuilds-beta-note %}
You can set up a prebuild configuration for a specific branch of your repository.
Any branch created from a prebuild-enabled base branch will typically also get assigned a prebuild during codespace creation. This is true if the dev container on the branch is the same as on the base branch. This is because the majority of the prebuild configuration for branches with the same dev container configuration are identical, so developers can benefit from faster codespace creation times on those branches also. For more information, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)."
@@ -38,7 +36,7 @@ Before you can configure prebuilds for your project the following must be true:
![The 'Set up prebuilds' button](/assets/images/help/codespaces/prebuilds-set-up.png)
1. Choose the branch for which you want to set up a prebuild.
1. Choose the branch for which you want to set up a prebuild.
![The Branch drop-down menu](/assets/images/help/codespaces/prebuilds-choose-branch.png)
@@ -48,7 +46,15 @@ Before you can configure prebuilds for your project the following must be true:
{% endnote %}
1. Choose the regions in which you want to set up a prebuild. Developers must be located in a region you select to be able to create codespaces from a prebuild. Alternatively, select **All regions**.
1. Choose how you want to automatically trigger updates of the prebuild template.
* **Every push** (the default setting) - With this setting, prebuild configurations will be updated on every push made to the given branch. This will ensure that codespaces generated from a prebuild template always contain the latest codespace configuration, including any recently added or updated dependencies.
* **On configuration change** - With this setting, prebuild configurations will be updated every time associated configuration files for a given repo and branch are updated. This ensures that changes to the dev container configuration files for the repository are used when a codespace is generated from a prebuild template. The Actions workflow that updates the prebuild template will run less often, so this option will use fewer Actions minutes. However, this option will not guarantee that codespaces always include recently added or updated dependencies, so these may have to be added or updated manually after a codespace has been created.
* **Scheduled** - With this setting, you can have your prebuild configurations update on a custom schedule that's defined by you. This can reduce consumption of Actions minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes.
![The prebuild trigger options](/assets/images/help/codespaces/prebuilds-triggers.png)
1. Select **Reduce prebuild available to only specific regions** to limit access to your prebuilt image, then select which regions you want it available in. Developers can only create codespaces from a prebuild if they are located in a region you select. By default, your prebuilt image is available to all regions where codespaces is available and storage costs apply for each region.
![The region selection options](/assets/images/help/codespaces/prebuilds-regions.png)
@@ -60,13 +66,17 @@ Before you can configure prebuilds for your project the following must be true:
{% endnote %}
1. Choose how you want to automatically trigger updates of the prebuild template.
1. Set the number of prebuild template versions to be retained. You can input any number between 1 and 5. The default number of saved versions is 2, which means that only the latest template version and the previous version are saved.
* **Every push** (the default setting) - With this setting, prebuild configurations will be updated on every push made to the given branch. This will ensure that codespaces generated from a prebuild template always contain the latest codespace configuration, including any recently added or updated dependencies.
* **On configuration change** - With this setting, prebuild configurations will be updated every time associated configuration files for a given repo and branch are updated. This ensures that changes to the dev container configuration files for the repository are used when a codespace is generated from a prebuild template. The Actions workflow that updates the prebuild template will run less often, so this option will use fewer Actions minutes. However, this option will not guarantee that codespaces always include recently added or updated dependencies, so these may have to be added or updated manually after a codespace has been created.
* **Scheduled** - With this setting, you can have your prebuild configurations update on a custom schedule that's defined by you. This can reduce consumption of Actions minutes, and reduce the amount of time during which prebuilds are unavailable because they are being updated. However, with this option, codespaces may be created that do not use the latest dev container configuration changes.
Depending on your prebuild trigger settings, your prebuild template could change with each push or on each dev container configuration change. Retaining older versions of prebuild templates enables you to create a prebuild from an older commit with a different dev container configuration than the current prebuild template. Since there is a storage cost associated with retaining prebuild template versions, you can choose the number of versions to be retained based on the needs of your team. For more information on billing, see "[About billing for {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)."
![The prebuild trigger options](/assets/images/help/codespaces/prebuilds-triggers.png)
If you set the number of prebuild template versions to save to 1, {% data variables.product.prodname_codespaces %} will only save the latest version of the prebuild template and will delete the older version each time the template is updated. This means you will not get a prebuilt codespace if you go back to an older dev container configuration.
![The prebuild template history setting](/assets/images/help/codespaces/prebuilds-template-history-setting.png)
1. Add users or teams to notify when the prebuild workflow run fails for this configuration. You can begin typing a username, team name, or full name, then click the name once it appears to add them to the list. The users or teams you add will receive an email when prebuild failures occur, containing a link to the workflow run logs to help with further investigation.
![The prebuild failure notification setting](/assets/images/help/codespaces/prebuilds-failure-notification-setting.png)
1. Click **Create**.

View File

@@ -15,5 +15,4 @@ children:
- /managing-prebuilds
- /testing-dev-container-changes
---
{% data reusables.codespaces.prebuilds-beta-note %}

View File

@@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}'
miniTocMaxHeadingLevel: 3
---
{% data reusables.codespaces.prebuilds-beta-note %}
## Checking, changing, and deleting your prebuild configurations
The prebuilds that you configure for a repository are created and updated using a {% data variables.product.prodname_actions %} workflow, managed by the {% data variables.product.prodname_codespaces %} service.

View File

@@ -14,8 +14,6 @@ product: '{% data reusables.gated-features.codespaces %}'
permissions: People with write permissions to a repository can create or edit the dev container configuration for a branch.
---
{% data reusables.codespaces.prebuilds-beta-note %}
Any changes you make to the dev container configuration for a prebuild-enabled branch will result in an update to the codespace configuration and the associated prebuild template. Its therefore important to test such changes in a codespace from a test branch before committing your changes to a branch of your repository that's actively used. This will ensure youre not introducing breaking changes for your team.
For more information, see "[Introduction to dev containers](/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)."

View File

@@ -12,8 +12,6 @@ product: '{% data reusables.gated-features.codespaces %}'
miniTocMaxHeadingLevel: 3
---
{% data reusables.codespaces.prebuilds-beta-note %}
For more information about {% data variables.product.prodname_codespaces %} prebuilds, see "[Prebuilding your codespaces](/codespaces/prebuilding-your-codespaces)."
## Checking whether a codespace was created from a prebuild?

View File

@@ -158,7 +158,7 @@ Because user-level permissions are granted on an individual user basis, you can
## User-to-server requests
While most of your API interaction should occur using your server-to-server installation access tokens, certain endpoints allow you to perform actions via the API using a user access token. Your app can make the following requests using [GraphQL v4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) or [REST v3](/rest) endpoints.
While most of your API interaction should occur using your server-to-server installation access tokens, certain endpoints allow you to perform actions via the API using a user access token. Your app can make the following requests using [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) or [REST](/rest) endpoints.
### Supported endpoints

View File

@@ -52,7 +52,7 @@ We recommend reviewing the list of API endpoints you need as early as possible.
### Design to stay within API rate limits
GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql).
GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql).
### Register a new GitHub App

View File

@@ -14,7 +14,7 @@ topics:
- API
---
There are two stable versions of the GitHub API: the [REST API](/rest) and the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). When using the REST API, we encourage you to [request v3 via the `Accept` header](/v3/media/#request-specific-version). For information on using the GraphQL API, see the [v4 docs]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql).
There are two stable versions of the GitHub API: the [REST API](/rest) and the [GraphQL API]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql).
## Deprecated versions

View File

@@ -12,7 +12,7 @@ topics:
- API
---
You can access most objects in GitHub (users, issues, pull requests, etc.) using either the REST API or the GraphQL API. You can find the **global node ID** of many objects from within the REST API and use these IDs in your GraphQL operations. For more information, see "[Preview GraphQL API v4 Node IDs in REST API v3 resources](https://developer.github.com/changes/2017-12-19-graphql-node-id/)."
You can access most objects in GitHub (users, issues, pull requests, etc.) using either the REST API or the GraphQL API. You can find the **global node ID** of many objects from within the REST API and use these IDs in your GraphQL operations. For more information, see "[Preview GraphQL API Node IDs in REST API resources](https://developer.github.com/changes/2017-12-19-graphql-node-id/)."
{% note %}

View File

@@ -14,7 +14,7 @@ topics:
## Node limit
To pass [schema](/graphql/guides/introduction-to-graphql#schema) validation, all GraphQL API v4 [calls](/graphql/guides/forming-calls-with-graphql) must meet these standards:
To pass [schema](/graphql/guides/introduction-to-graphql#schema) validation, all GraphQL API [calls](/graphql/guides/forming-calls-with-graphql) must meet these standards:
* Clients must supply a `first` or `last` argument on any [connection](/graphql/guides/introduction-to-graphql#connection).
* Values of `first` and `last` must be within 1-100.
@@ -130,30 +130,30 @@ These two examples show how to calculate the total nodes in a call.
## Rate limit
The GraphQL API v4 limit is different from the REST API v3's [rate limits](/rest/overview/resources-in-the-rest-api#rate-limiting).
The GraphQL API limit is different from the REST API's [rate limits](/rest/overview/resources-in-the-rest-api#rate-limiting).
Why are the API rate limits different? With [GraphQL](/graphql), one GraphQL call can replace [multiple REST calls](/graphql/guides/migrating-from-rest-to-graphql). A single complex GraphQL call could be the equivalent of thousands of REST requests. While a single GraphQL call would fall well below the REST API rate limit, the query might be just as expensive for GitHub's servers to compute.
To accurately represent the server cost of a query, the GraphQL API v4 calculates a call's **rate limit score** based on a normalized scale of points. A query's score factors in first and last arguments on a parent connection and its children.
To accurately represent the server cost of a query, the GraphQL API calculates a call's **rate limit score** based on a normalized scale of points. A query's score factors in first and last arguments on a parent connection and its children.
* The formula uses the `first` and `last` arguments on a parent connection and its children to pre-calculate the potential load on GitHub's systems, such as MySQL, ElasticSearch, and Git.
* Each new connection has its own point value. Points are combined with other points from the call into an overall rate limit score.
The GraphQL API v4 rate limit is **5,000 points per hour**.
The GraphQL API rate limit is **5,000 points per hour**.
Note that 5,000 points per hour is not the same as 5,000 calls per hour: the GraphQL API v4 and REST API v3 use different rate limits.
Note that 5,000 points per hour is not the same as 5,000 calls per hour: the GraphQL API and REST API use different rate limits.
{% note %}
**Note**: The current formula and rate limit are subject to change as we observe how developers use the GraphQL API v4.
**Note**: The current formula and rate limit are subject to change as we observe how developers use the GraphQL API.
{% endnote %}
### Returning a call's rate limit status
With the REST API v3, you can check the rate limit status by [inspecting](/rest/overview/resources-in-the-rest-api#rate-limiting) the returned HTTP headers.
With the REST API, you can check the rate limit status by [inspecting](/rest/overview/resources-in-the-rest-api#rate-limiting) the returned HTTP headers.
With the GraphQL API v4, you can check the rate limit status by querying fields on the `rateLimit` object:
With the GraphQL API, you can check the rate limit status by querying fields on the `rateLimit` object:
```graphql
query {
@@ -186,7 +186,7 @@ Querying the `rateLimit` object returns a call's score, but running the call cou
{% note %}
**Note**: The minimum cost of a call to the GraphQL API v4 is **1**, representing a single request.
**Note**: The minimum cost of a call to the GraphQL API is **1**, representing a single request.
{% endnote %}

View File

@@ -24,12 +24,6 @@ topics:
</div>
</div>
{% warning %}
Warning: As of late October 2021, the official Octokit libraries are not currently maintained. For more information, see [this discussion in the octokit.js repository](https://github.com/octokit/octokit.js/discussions/620).
{% endwarning %}
# Third-party libraries
### Clojure

View File

@@ -185,7 +185,7 @@ _Search_
- [`PUT /repos/:owner/:repo/topics`](/rest/reference/repos#replace-all-repository-topics) (:write)
- [`POST /repos/:owner/:repo/transfer`](/rest/reference/repos#transfer-a-repository) (:write)
{% ifversion fpt or ghec -%}
- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write)
- [`GET /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:read)
{% endif -%}
{% ifversion fpt or ghec -%}
- [`PUT /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (:write)

View File

@@ -25,7 +25,7 @@ We encourage you to [explicitly request this version via the `Accept` header](/r
{% ifversion fpt or ghec %}
For information about GitHub's GraphQL API, see the [v4 documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). For information about migrating to GraphQL, see "[Migrating from REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)."
For information about GitHub's GraphQL API, see the [documentation]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). For information about migrating to GraphQL, see "[Migrating from REST]({% ifversion ghec%}/free-pro-team@latest{% endif %}/graphql/guides/migrating-from-rest-to-graphql)."
{% endif %}

View File

@@ -0,0 +1,6 @@
# Reference: #7070
# Actions Runner Container Hooks
versions:
fpt: '*'
ghec: '*'
ghae: 'issue-7070'

View File

@@ -4,9 +4,14 @@ If you do not set a `container`, all steps will run directly on the host specifi
### Example: Running a job within a container
```yaml
```yaml{:copy}
name: CI
on:
push:
branches: [ main ]
jobs:
my_job:
container-test-job:
runs-on: ubuntu-latest
container:
image: node:14.16
env:
@@ -16,12 +21,16 @@ jobs:
volumes:
- my_docker_volume:/volume_mount
options: --cpus 1
steps:
- name: Check for dockerenv file
run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv)
```
When you only specify a container image, you can omit the `image` keyword.
```yaml
jobs:
my_job:
container-test-job:
runs-on: ubuntu-latest
container: node:14.16
```

View File

@@ -1 +0,0 @@
{% data variables.product.prodname_codespaces %} is free to use during the beta. When {% data variables.product.prodname_codespaces %} becomes generally available, you will be billed for storage and compute usage.

View File

@@ -1,5 +0,0 @@
During the beta, functionality is limited.
- {% data reusables.codespaces.use-chrome %}
- Only a single size of codespace is available.
- Only Linux containers are supported.
- A codespace is not fully resumable. Processes that were running at the time the codespace was stopped will not be restarted.

View File

@@ -1,7 +1,7 @@
By default, a {% data variables.product.prodname_actions %} workflow is triggered every time you create or update a prebuild template, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)."
If you are an organization owner, you can track usage of prebuild workflows by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." For more information, see "[Viewing your {% data variables.product.prodname_actions %} usage](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)."
Alongside {% data variables.product.prodname_actions %} minutes, you will also be billed for the storage of prebuild templates associated with each prebuild configuration for a given repository and region. Storage of prebuild templates is billed at the same rate as storage of codespaces. For more information, see "[Calculating storage usage](#calculating-storage-usage)."
To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)."
To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. For more information, see "[Configuring prebuilds](/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-a-prebuild)."
While {% data variables.product.prodname_codespaces %} prebuilds is in beta there is no charge for storage of templates. When prebuilds become generally available, you will be billed for storing prebuild templates for each prebuild configuration in each region selected for that configuration.
If you are an organization owner, you can track usage of prebuild workflows and storage by downloading a {% data variables.product.prodname_actions %} usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." For more information, see "[Viewing your {% data variables.product.prodname_actions %} usage](/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage#viewing-github-actions-usage-for-your-organization)."

View File

@@ -1,5 +0,0 @@
{% note %}
**Note:** The ability to prebuild codespaces is currently in beta and subject to change.
{% endnote %}

View File

@@ -1 +0,0 @@
During the beta, private repositories owned by organizations or any repositories owned by an organization that requires SAML single sign-on are not supported.

View File

@@ -1,12 +1,7 @@
import cheerio from 'cheerio'
import { range } from 'lodash-es'
export default function getMiniTocItems(
html,
maxHeadingLevel = 2,
headingScope = '',
isRestPage = false
) {
export default function getMiniTocItems(html, maxHeadingLevel = 2, headingScope = '') {
const $ = cheerio.load(html, { xmlMode: true })
// eg `h2, h3` or `h2, h3, h4` depending on maxHeadingLevel
@@ -43,9 +38,7 @@ export default function getMiniTocItems(
// remove any <strong> tags but leave content
$('strong', item).map((i, el) => $(el).replaceWith($(el).contents()))
const contents = isRestPage
? { href: `${href}`, title: `${$(item).text()}` }
: `<a class="d-block width-auto" href="${href}">${$(item).html()}</a>`
const contents = { href, title: $(item).text().trim() }
const headingLevel = parseInt($(item)[0].name.match(/\d+/)[0], 10) || 0 // the `2` from `h2`
const platform = $(item).parent('.extended-markdown').attr('class') || ''
@@ -69,7 +62,7 @@ export default function getMiniTocItems(
// convert the flatToc to a nested structure to simplify semantic rendering on the client
const nestedToc = buildNestedToc(flatToc)
return nestedToc
return minimalMiniToc(nestedToc)
}
// Recursively build a tree from the list of allItems
@@ -118,3 +111,15 @@ function buildNestedToc(allItems, startIndex = 0) {
return currentLevel
}
// Strip the bits and pieces from each object in the array that are
// not needed in the React component rendering.
function minimalMiniToc(toc) {
return toc.map(({ platform, contents, items }) => {
const minimal = { contents }
const subItems = minimalMiniToc(items)
if (subItems.length) minimal.items = subItems
if (platform) minimal.platform = platform
return minimal
})
}

View File

@@ -103,7 +103,7 @@ export async function getRestMiniTocItems(
// is needed to generate the toc
const titles = restOperations.map((operation) => `### ${operation.title}\n`).join('')
toc += await renderContent(titles, context)
const restOperationsMiniTocItems = getMiniTocItems(toc, 3, '', true)
const restOperationsMiniTocItems = getMiniTocItems(toc, 3, '')
languageTree.get(version).get(category).set(subCategory, {
restOperationsMiniTocItems,
})

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5c5f4d6d0278c5a471dd1c0eaab1844adead6ec7d1de9710c0056b11b0123fb5
size 741003
oid sha256:0ff91e9452ead332260706bad6c6ece601c5cd73a04588ecb60bd7e2f8be818f
size 740986

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:453de2fa79c256c94ae042ea79095eb0a2035429b72004d4f05e36e50fcfcd86
size 1564519
oid sha256:bc6ebcdee0f6514e6081bdba170fb579b914eebb9545362e6776ebcb7b190ea6
size 1564538

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:104aa63fba7c7c921f0e96e4732fad2fb12c10a2ac925109b29ddaeb7e135335
size 998020
oid sha256:2460adf9a6b5114a353cd1d5e6b2033ff5e90ed03c63201688361a88a940ea1b
size 998199

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1c9b0f9020443a9614e1d133c044781e24b4c3635eddd335646b4e6ee25dae63
size 4001532
oid sha256:976ae8ad67ffca1cd859edd91b1db89c2882d93158d9b3ae3d9a9d800ded472c
size 4001148

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2c0ce71e556f355de59747a6f62c1544c5585e2dece5482661c6caf86e61b7a2
size 684070
oid sha256:e32c9339ccd8dd27b7d3f30668514fdb39195521b849c920c687aeb1f3bab33c
size 684045

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dbec137bba645ccc2f1afebed63864d284b219db2977ffb0a1e635114f124b3f
size 2973533
oid sha256:4fd822b12403c4c4f24d53822296b0d9662a0c01bc05095c70b2fe93173755fd
size 2973767

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:66e70f7bdc2b827e135b9d2f3553af282f925dcdf5b692f6ecb6494f9865e4dc
size 751580
oid sha256:17745e8d40e7c05e2bf7e44a7d6b402507d2cb5b60aa3561bb523bcc4f95e73d
size 751870

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6f4556fc747d1e883de48619be14316cc53d02094fd0cd275f1659028f802b1f
size 4133861
oid sha256:e7ddd68fda7a88bf27ed865fbd2c9e700e7d2b97fefb2770ffc82932f8807d13
size 4134137

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7dbd5f240443704f4551430a4fbba559cbc82c167a1c10fa5ffdf081937f63b4
size 674710
oid sha256:5f900fdef601ad0c09e38525498fa79afdfbffd4348881b7f7e942dac20f16d6
size 674654

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:422ffe291542c8eb91ac6eddbec95c02f527dd3d95fff8a36c709fbc532e791d
size 2876438
oid sha256:81d265fcd6f1249b67ee7f0a1d6c30f84553eff4084d84221ea7ab234acc1f99
size 2874624

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1f3c151f80fc3a5d719810830b04a0783c9f89d1955971c86cc62ae5f100080c
size 762656
oid sha256:cae5f375286a43a08d963395f354c1d514026df99d0859b8827fdcf0d1034718
size 762744

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e06b89a0f001bc009a3c59530131282c10d8a1106f2450da21971f9ee6a7122
size 1602818
oid sha256:37e16d8e25a1a36b735d716ca5cf7fe163e2461a8943f31cbe283eeecd70bc11
size 1603240

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a94a36a54ea13ee4405584040cd9d628630276e77daa2740bbd1256022575a04
size 1035082
oid sha256:1d047b119fe464998935dc03875f41a0356989cd9e316a7eab15491fc5c60af6
size 1035027

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67abb1f9c795429c8dc20e68110394ccde459abf7d23785e2fe45495c08c5be2
size 4154910
oid sha256:8ce1dc400f33bf8ccbaec74697ab913362da25f283a44c3c764997f7de9924e8
size 4154817

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:474aefb7fa1c2871cea74d614fe97502c945f4e8a4f2ac2f6bfc1e2f0a23f341
size 704105
oid sha256:554e83d164b2523d24385f3d5b3590111ec8d9afc3ab3aec97834b0cb122e164
size 704189

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a403d425c058d261a3670d82d677008a213131c2cc4e46df99688ea651deebba
size 3059954
oid sha256:1a3dba76cfb77e9444e910e3ed1e800ae91fc8814146b275dd749b769af1d729
size 3059300

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3df13e61910de670e78e22132dc17495f25cd7590db932108a748616eb53d65f
size 772523
oid sha256:e0ac5b55bf2ed0720e7427ef2db050cd604454c0537ca5e14067678cec538243
size 772518

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:484ed0957ff67199e5f2a1d93d87e3a51ae69bdf47798df447a7f92426ffb8bf
size 4251234
oid sha256:c5608154b4285fe043f9fec7c624af335789754274682909152c5e35e9b20118
size 4250927

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b08754db5a22f1649165056393c736a4af71ba54de9d87aff0096d9bbc5ebfda
size 694191
oid sha256:4e189a02647cd82d8a3b3aade38af67a8486f622ee577cd6401f053abe312b0d
size 694067

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:422b3845b9a9d0df2687adc19bf167bbdceb1cd7de6a92636a165ae0b6531305
size 2954854
oid sha256:ac73c3146d229f6c3b856576798978332b4bdfeb8a23287cb46b511fac209287
size 2954861

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3fcf60dc91e93ac1047dac042e9e1761432a209b72570abd1f0b38a1901d1ae
size 786343
oid sha256:a4854a63c8abf4f5a0bfbee81eac9697a2730a1898fe2fed8ff630bf3ad93d4e
size 786284

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9aeb37f0642caad1674b3e44b0559a7f77b735add932c6cc27a8fe949361175
size 1644511
oid sha256:3333335008dd7bdbb962cb87979e689453fe19e42e8fed99ef6bdd25a72b0562
size 1644574

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0d4eefa39974be3b186cb1d23e4f8e663f531325723ad3ad89afb5fd9b53a06d
size 1069722
oid sha256:4890519ff0a1baf55bca7d5fdd09b02cfe1302bdc5726efead64ddcf54a56350
size 1070016

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:20941b944ee0d3728a3deab761c30c53396efea41560e4bd1907e11468ec7660
size 4250893
oid sha256:8c0699a416d0418266f2ac89ee1bb13ed5585ee783857760bf4e48555db97e34
size 4250227

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:698751672ccae559331a95e7c704f51091e44115783b97ea49bf40f0aa2858a0
size 723786
oid sha256:2e93cd8c6bf7369cee9a8c2db401d6fb0c796b4f282a0160031751659c51ca6e
size 723867

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1844c8e4e964bd25aaa7208390758d618034d1f52c475673a0098e63d7c02553
size 3139696
oid sha256:39708211bf1321b2ac772b79fe6d971f19bab6932d5b7ddd01af62b19c24affe
size 3139977

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3e84744d14211d8342358f9bafaee1bd8998d0423e219fc8a694163af8b4f412
size 796053
oid sha256:dfce451c63fdda2691a9f5c1fd55719af272b8a4b424ec2f94061d8510726dfc
size 796138

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ee3277e1dd5ce6ebd66a7afa4fba4ce50491b88161bd25533d8a4b9c410e7843
size 4370155
oid sha256:735dfcd86c81df553f31d699c6b732629f2e643ac19d8fadb932dcb2925cd6e5
size 4369976

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4295a1c6560a67a1fccd910596e84185392a1ded0676e716a689d1fe643d64bd
size 713807
oid sha256:f710cb45204cef2c89006a81412e68bbc9c957f22d7aa1be3a0b7059b05d60fd
size 713715

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8900b54e887c8f6b1091d46a6a9750dcee0bc3fb27cc33d84705f6ce3185841f
size 3033121
oid sha256:003030ad6656f364f9fbe1d65120350bc8f1559ec0143e2deb2c95b52321384e
size 3033493

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3213860d0904f69c9e8f6657625de94a6c2bfc37ce006acc38bad3f9790cf1c4
size 788213
oid sha256:dd6a1356cc7dfcbc5d181fd17bea90c2aa6f24c03bd408b52d287fa0d6779701
size 788284

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f048a0cc63a9edbcf18b6baf4312487c7ab71a51f243743dc3d93062cbdee6e7
size 1656149
oid sha256:1c50414095bf93fa742c84eeee314c5d018cbb964e2c9affd8f6728802988d4b
size 1656128

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2aa677506a7a98cc22a565c4e4e6fd0c5e4605076eab3d043b55808912cddd5
size 1079028
oid sha256:20d00d2ad6a5c114c2ea390ab21966e5fa6a20baca523ad87234edddf368ac0e
size 1078904

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f4fe7f16df46476046c5fd40ed6ba98b0f59c38913441e032738b418babbd5b
size 4292085
oid sha256:0171ef20c803e1c74bc031bda01a7d3688377214a512e88b25434b70a1abe4cf
size 4291427

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7253052ebe6efcf30a64e4260a5fb5dae8804e8f102bffc45d26c4a52abd4ec6
size 727276
oid sha256:5924d3fc79f3cc519d20d7027261be957ed5ba0836a552c70356efe0a6bad9e7
size 727284

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cdae7f1cce26641fc4ff7aa70312030078fd159069a17e7e8f258ea781c46cc3
size 3158492
oid sha256:9d90001ea7a59ddecfaecda79adbe233405e79d9170d056666495a822ed126b1
size 3158187

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc04b7e82e1ac6ec52e2d9c0f72cf60d450edb693bd96b3c4b7271065be64e7e
size 798725
oid sha256:1054f49460d0ebd77cecc9abd82348ea30ad066ea5b5177484e8ddedc5318a94
size 798749

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:630f396a16a977085b8c1c9b1485de9e7e8f4c29069f060997f19d68b5bff5b8
size 4394972
oid sha256:79d5faa48b1582486bb6e0f8871f89c85b3a356cc2d7a38ca979fe89569d3de8
size 4394425

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f689d97268b49a55b3132a476f1b5842e12090467fd51dae0f406bfa29e0679e
size 717041
oid sha256:347001525e208672b1aee52c07ed6deba4dc5123ccfd6ad575fbdab96e35cf60
size 717003

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:508565ae2af6512d8780acb1cea5280b27ad7faf0a288892c482c5aec5c479c5
size 3053233
oid sha256:fcebffb7476b4bb163de14c7ee533ae6f4880d91e996bc3165349f16a91a82ea
size 3053012

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f34605956f34ca4dab7443ccdf4e9711aa7d8a061665d30ea24b9b81400da3be
size 816487
oid sha256:0fca3613e621f17bdcbada759757c8e98ff574e3b38d21a1aa1969de5ed7642f
size 816557

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:360b26832434e2b0ca4a3e2929c126bff9151fbc573e363c2708e43d9ef827a2
size 1723870
oid sha256:6948c2fddb800ae2333c5074a63c4ce3bbee8ac72647b670afedac3650ad5318
size 1724030

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a510a5660cb8832c2bcfda14513ee7d9c51101457dd59f40dc9e97f16adab7d
size 1117249
oid sha256:e58e9c64e8fd7c308d436a8210dd2f946c69f7c4d3c0d516caa8d469ad9594c1
size 1117136

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a16b1850016992705e49a4430210e5e09b33b5aaec055f0a7aa4fb0339a8298
size 4451020
oid sha256:8bc7e31919b51c36c2e9a06383cbdc5c774a7a0d63e4417e671b67ae9c4f241c
size 4449887

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29f11b63dca0507c8dff6c5ce38ed4258b60f9370e58113ac649b16e70c4ea29
size 750378
oid sha256:e8b504275afb06a723edc5c9f3078efd93721d4028f7989133de8a6594698a10
size 750081

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d127e6003eeec2c1fa3362f18f9a6ae31d8c99cdebc2ce60b13fa62d27e6dd24
size 3272859
oid sha256:039bed04f3bdca9296f91447b1e84acc108671119278dd24261bdeb976106f31
size 3272212

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c5b27e1371d31ed6a0c9479247fef271f61bda855fcdfb83a1b643becb144e6c
size 824244
oid sha256:6e35b2e0a0b92bf48af67e18bdb169ef1ec52f56c6bbb65c18a00d42f9f99dde
size 823964

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:74ecd0085cf8808f4fffedc530bd3d71e8513198205560273ef1e3ff5243e99c
size 4554006
oid sha256:c90be8153ab54ddd46d013c39ff1fdc6121ec1c0f370874189ba27e9bbd362ba
size 4553023

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e795ff73cb2564dd53f208aab3f98614fbc87efb5e4e808d74c76d554caf8b2
size 739156
oid sha256:2530986114ed4f8b6ea13d143b07c1429c38e17e2ff59f663b76c70689a985d4
size 738835

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a832af472ebc66576e1aebe157ff94dd95dfc4fe1b1c7ffb554568f897a1a754
size 3159813
oid sha256:3e53467fdc2f9b5ad4b5e550b2ecd41b7fa543e9fbe7c0456dbb31c74ec06f92
size 3159920

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8946bcaa09af560f96995cd6b0a47d80bed377471b3cd16e833d9d28f94df300
size 983326
oid sha256:4d6190f58011a1f376b2965495dbca00ae60fed1ff9a0aa48ccc9424d9b9c272
size 983307

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4b777d1b7afca7693bca0f05888591d62f5913d724b291f2a7caef953997f90c
size 1721009
oid sha256:1bd69245e923387a7983cf1769b521e91aaf869fb0075c3713f6da2bfc64a69d
size 1720884

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6cf88f405b45e0cd5e478d0c53fc962c4b9eb7c18bb4c56bde8a89d7102a4b98
size 1346831
oid sha256:3f937d8f2ce8dbddd5fb5228f61a3813f1022640ef8d44ad9fe9ce331f6bc644
size 1352314

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15aa4c354d928080dc002fb141f7f23c23d7f9c11e1c1d7413560b3c93da6b72
size 5085761
oid sha256:4053695ea12317c2619088487ac0c2e165a8fbe094a49011e42ec276d20514cd
size 5098360

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca1a32db4fefd689f3678c3c20d5aefde4917d00ed12433ea87f98cd3f6f6698
size 886919
oid sha256:bba0d95aa653166c82fe46d0c6b12910dc1fb24fe43ca81186b8a462a1c56445
size 887070

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea463c59b39a52fff9cf8650779d9ef1c6c4145e2614b8f667d9f3aad8919db9
size 3676931
oid sha256:15b393869173097f8641ab5b7c7cfad7bf4b3ae5930cdb2531866ef3f4581546
size 3676977

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f2009d57237e9ea40fa8327d55dcaed29ce2bd013e4e3f73cea5edabd4ee4b9
size 985978
oid sha256:ae9ffa6b71760f2fbb2bc1e19b23895e3a98fc73b41ed04976cd4166204db3b6
size 986243

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:426ab1b1355c737f62b07d112076ddfda24f2fe07352018bb9958d3cf4bd9e27
size 5228449
oid sha256:91345b40189b95ccdef8b4535326d11a68002988f21a51ea502bfe7e79ae1b87
size 5229410

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4fab166cb843a61200a4febe136705942cbd3307673f7273e439e3c549198dbd
size 874190
oid sha256:ee7f7f6ccbc2162efa1fb066843c09da5c71955209bdd37d18843fa529d5c6e7
size 875374

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f3951be0ace5cbb00272d369a5477b52a1479821463b2d9c9aa649aa5efd160d
size 3572163
oid sha256:d44da857992bed25f9b3dba6d9cca0cf073938a23edfcbf19c9e4cc5593ed104
size 3576665

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1cc91a73fd769020499a09f868604b920c55b1853a988e2f8aaa7b5fd5ac41a2
size 625802
oid sha256:00163e021c31394198535e29cf2699db1d52982d1485aed670ef2440d5b2433c
size 625897

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:377b950ac2d501abd3977c090c607c4d125b24489b08a09647ca67bbd2d3411c
size 1268711
oid sha256:4a303f1b9611d3d74c8a1b3b91020c4e1b33bc0b69a4f849169fff89f46fb28e
size 1268668

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e3341132c70d659857a0c9e9bf2b073ead8cc949cd951481098d86bbfc02e04
size 868167
oid sha256:bea398be95fa5e54ab260f5a64e1952a032a66a343f9648f8935e951d830f4de
size 868175

Some files were not shown because too many files have changed in this diff Show More