1
0
mirror of synced 2026-01-07 18:01:41 -05:00

Merge branch 'main' into patch-1

This commit is contained in:
Courtney Wilson
2022-10-12 10:11:51 -05:00
committed by GitHub
148 changed files with 2056 additions and 731 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -1,4 +1,4 @@
import { useEffect, useState } from 'react'
import { useCallback, useEffect, useState } from 'react'
import Cookies from 'js-cookie'
import { SubNav, TabNav, UnderlineNav } from '@primer/react'
import { sendEvent, EventType } from 'components/lib/events'
@@ -7,6 +7,7 @@ import { useRouter } from 'next/router'
import { useArticleContext } from 'components/context/ArticleContext'
import { parseUserAgent } from 'components/lib/user-agent'
const platformQueryKey = 'platform'
const platforms = [
{ id: 'mac', label: 'Mac' },
{ id: 'windows', label: 'Windows' },
@@ -49,9 +50,10 @@ type Props = {
variant?: 'subnav' | 'tabnav' | 'underlinenav'
}
export const PlatformPicker = ({ variant = 'subnav' }: Props) => {
const router = useRouter()
const { query, asPath } = router
const { defaultPlatform, detectedPlatforms } = useArticleContext()
const [currentPlatform, setCurrentPlatform] = useState(defaultPlatform || '')
const { asPath } = useRouter()
// Run on mount for client-side only features
useEffect(() => {
@@ -60,7 +62,15 @@ export const PlatformPicker = ({ variant = 'subnav' }: Props) => {
userAgent = 'mac'
}
const platform = defaultPlatform || Cookies.get('osPreferred') || userAgent || 'linux'
// If it's a valid platform option, set platform from query param
let platform =
query[platformQueryKey] && Array.isArray(query[platformQueryKey])
? query[platformQueryKey][0]
: query[platformQueryKey] || ''
if (!platform || !platforms.some((platform) => platform.id === query.platform)) {
platform = defaultPlatform || Cookies.get('osPreferred') || userAgent || 'linux'
}
setCurrentPlatform(platform)
// always trigger this on initial render. if the default doesn't change the other useEffect won't fire
@@ -75,23 +85,28 @@ export const PlatformPicker = ({ variant = 'subnav' }: Props) => {
}
}, [currentPlatform, detectedPlatforms.join(',')])
const onClickPlatform = (platform: string) => {
setCurrentPlatform(platform)
const onClickPlatform = useCallback(
(platform: string) => {
// Set platform in query param without altering other query params
const [pathRoot, pathQuery = ''] = asPath.split('?')
const params = new URLSearchParams(pathQuery)
params.set(platformQueryKey, platform)
router.push({ pathname: pathRoot, query: params.toString() }, undefined, { shallow: true })
// imperatively modify the article content
showPlatformSpecificContent(platform)
sendEvent({
type: EventType.preference,
preference_name: 'os',
preference_value: platform,
})
sendEvent({
type: EventType.preference,
preference_name: 'os',
preference_value: platform,
})
Cookies.set('osPreferred', platform, {
sameSite: 'strict',
secure: true,
})
}
Cookies.set('osPreferred', platform, {
sameSite: 'strict',
secure: document.location.protocol !== 'http:',
expires: 365,
})
},
[asPath]
)
// only show platforms that are in the current article
const platformOptions = platforms.filter((platform) => detectedPlatforms.includes(platform.id))
@@ -128,15 +143,20 @@ export const PlatformPicker = ({ variant = 'subnav' }: Props) => {
}
if (variant === 'underlinenav') {
const [, pathQuery = ''] = asPath.split('?')
const params = new URLSearchParams(pathQuery)
return (
<UnderlineNav {...sharedContainerProps}>
{platformOptions.map((option) => {
params.set(platformQueryKey, option.id)
return (
<UnderlineNav.Link
href={`?${params.toString()}`}
key={option.id}
data-platform={option.id}
selected={option.id === currentPlatform}
onClick={() => {
onClick={(event) => {
event.preventDefault()
onClickPlatform(option.id)
}}
>

View File

@@ -1,4 +1,4 @@
import { useEffect, useState } from 'react'
import { useCallback, useEffect, useState } from 'react'
import { useRouter } from 'next/router'
import Cookies from 'js-cookie'
import { UnderlineNav } from '@primer/react'
@@ -47,11 +47,13 @@ function getDefaultTool(defaultTool: string | undefined, detectedTools: Array<st
return detectedTools[0]
}
const toolQueryKey = 'tool'
type Props = {
variant?: 'subnav' | 'tabnav' | 'underlinenav'
}
export const ToolPicker = ({ variant = 'subnav' }: Props) => {
const { asPath } = useRouter()
const router = useRouter()
const { asPath, query } = router
// allTools comes from the ArticleContext which contains the list of tools available
const { defaultTool, detectedTools, allTools } = useArticleContext()
const [currentTool, setCurrentTool] = useState(getDefaultTool(defaultTool, detectedTools))
@@ -73,38 +75,66 @@ export const ToolPicker = ({ variant = 'subnav' }: Props) => {
}
}, [])
// Whenever the currentTool is changed, update the article content
// Whenever the currentTool is changed, update the article content or selected tool from query param
useEffect(() => {
preserveAnchorNodePosition(document, () => {
showToolSpecificContent(currentTool, Object.keys(allTools))
})
// If tool from query is a valid option, use it
const tool =
query[toolQueryKey] && Array.isArray(query[toolQueryKey])
? query[toolQueryKey][0]
: query[toolQueryKey] || ''
if (tool && detectedTools.includes(tool)) {
setCurrentTool(tool)
}
}, [currentTool, asPath])
function onClickTool(tool: string) {
setCurrentTool(tool)
sendEvent({
type: EventType.preference,
preference_name: 'application',
preference_value: tool,
})
Cookies.set('toolPreferred', tool, { sameSite: 'strict', secure: true })
}
const onClickTool = useCallback(
(tool: string) => {
// Set tool in query param without altering other query params
const [pathRoot, pathQuery = ''] = asPath.split('?')
const params = new URLSearchParams(pathQuery)
params.set(toolQueryKey, tool)
router.push({ pathname: pathRoot, query: params.toString() }, undefined, { shallow: true })
sendEvent({
type: EventType.preference,
preference_name: 'application',
preference_value: tool,
})
Cookies.set('toolPreferred', tool, {
sameSite: 'strict',
secure: document.location.protocol !== 'http:',
expires: 365,
})
},
[asPath]
)
if (variant === 'underlinenav') {
const [, pathQuery = ''] = asPath.split('?')
const params = new URLSearchParams(pathQuery)
return (
<UnderlineNav {...sharedContainerProps}>
{detectedTools.map((tool) => (
<UnderlineNav.Link
key={tool}
data-tool={tool}
selected={tool === currentTool}
onClick={() => {
onClickTool(tool)
}}
>
{allTools[tool]}
</UnderlineNav.Link>
))}
{detectedTools.map((tool) => {
params.set(toolQueryKey, tool)
return (
<UnderlineNav.Link
href={`?${params.toString()}`}
key={tool}
data-tool={tool}
selected={tool === currentTool}
onClick={(event) => {
event.preventDefault()
onClickTool(tool)
}}
>
{allTools[tool]}
</UnderlineNav.Link>
)
})}
</UnderlineNav>
)
}

View File

@@ -26,7 +26,7 @@ export function getUserEventsId() {
if (cookieValue) return cookieValue
cookieValue = uuidv4()
Cookies.set(COOKIE_NAME, cookieValue, {
secure: true,
secure: document.location.protocol !== 'http:',
sameSite: 'strict',
expires: 365,
})

View File

@@ -102,7 +102,7 @@ export function RestCodeSamples({ operation, slug }: Props) {
setSelectedLanguage(languageKey)
Cookies.set('codeSampleLanguagePreferred', languageKey, {
sameSite: 'strict',
secure: true,
secure: document.location.protocol !== 'http:',
})
}

View File

@@ -95,8 +95,40 @@ For a longer-form and more prominent way of displaying customized information ab
{% endtip %}
3. Click **Update profile**.
![Update profile button](/assets/images/help/profile/update-profile-button.png)
{% data reusables.profile.update-profile %}
{% ifversion profile-time-zone %}
## Setting your location and time zone
You can set a location and time zone on your profile to show other people your local time. Your location and time zone will be visible:
- on your {% data variables.product.product_name %} profile page.
- when people hover over your username or avatar on {% data variables.product.product_name %}.
When you view your profile, you will see your location, local time, and your time zone in relation to Universal Time Coordinated.
![Screenshot of the Octocat profile page emphasizing the location, local time, and time zone fields.](/assets/images/help/profile/profile-location-and-time.png)
When others view your profile, they will see your location, local time, and the time difference in hours from their own local time.
![Screenshot of the Octocat profile page emphasizing the location, local time, and relative time fields.](/assets/images/help/profile/profile-relative-time.png)
{% data reusables.user-settings.access_settings %}
1. Under **Location**, type the location you want to be displayed on your profile.
![Screenshot of the location and local time settings emphasizing the location field.](/assets/images/help/profile/location-field.png)
1. Optionally, to display the current local time on your profile, select **Display current local time**.
![Screenshot of the location and local time settings emphasizing the display current local time checkbox.](/assets/images/help/profile/display-local-time-checkbox.png)
- Select the **Time zone** dropdown menu, then click your local time zone.
![Screenshot of the location and local time settings emphasizing the time zone dropdown menu.](/assets/images/help/profile/time-zone-dropdown.png)
{% data reusables.profile.update-profile %}
{% endif %}
## Setting a status

View File

@@ -275,7 +275,7 @@ This list describes the recommended approaches for accessing repository data wit
{% ifversion fpt or ghec %}**Self-hosted**{% elsif ghes or ghae %}Self-hosted{% endif %} runners for {% data variables.product.product_name %} do not have guarantees around running in ephemeral clean virtual machines, and can be persistently compromised by untrusted code in a workflow.
{% ifversion fpt or ghec %}As a result, self-hosted runners should almost [never be used for public repositories](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories) on {% data variables.product.product_name %}, because any user can open pull requests against the repository and compromise the environment. Similarly, be{% elsif ghes or ghae %}Be{% endif %} cautious when using self-hosted runners on private or internal repositories, as anyone who can fork the repository and open a pull request (generally those with read access to the repository) are able to compromise the self-hosted runner environment, including gaining access to secrets and the `GITHUB_TOKEN` which, depending on its settings, can grant write access to the repository. Although workflows can control access to environment secrets by using environments and required reviews, these workflows are not run in an isolated environment and are still susceptible to the same risks when run on a self-hosted runner.
{% ifversion fpt or ghec %}As a result, self-hosted runners should almost [never be used for public repositories](/actions/hosting-your-own-runners/about-self-hosted-runners#self-hosted-runner-security) on {% data variables.product.product_name %}, because any user can open pull requests against the repository and compromise the environment. Similarly, be{% elsif ghes or ghae %}Be{% endif %} cautious when using self-hosted runners on private or internal repositories, as anyone who can fork the repository and open a pull request (generally those with read access to the repository) are able to compromise the self-hosted runner environment, including gaining access to secrets and the `GITHUB_TOKEN` which, depending on its settings, can grant write access to the repository. Although workflows can control access to environment secrets by using environments and required reviews, these workflows are not run in an isolated environment and are still susceptible to the same risks when run on a self-hosted runner.
When a self-hosted runner is defined at the organization or enterprise level, {% data variables.product.product_name %} can schedule workflows from multiple repositories onto the same runner. Consequently, a security compromise of these environments can result in a wide impact. To help reduce the scope of a compromise, you can create boundaries by organizing your self-hosted runners into separate groups. You can restrict what {% ifversion restrict-groups-to-workflows %}workflows, {% endif %}organizations and repositories can access runner groups. For more information, see "[Managing access to self-hosted runners using groups](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups)."

View File

@@ -1,7 +1,7 @@
---
title: Backing up and restoring GitHub Enterprise Server with GitHub Actions enabled
shortTitle: Backing up and restoring
intro: '{% data variables.product.prodname_actions %} data on your external storage provider is not included in regular {% data variables.product.prodname_ghe_server %} backups, and must be backed up separately.'
intro: 'To restore a backup of {% data variables.product.product_location %} when {% data variables.product.prodname_actions %} is enabled, you must configure {% data variables.product.prodname_actions %} before restoring the backup with {% data variables.product.prodname_enterprise_backup_utilities %}.'
versions:
ghes: '*'
type: how_to
@@ -13,43 +13,32 @@ topics:
redirect_from:
- /admin/github-actions/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled
---
{% data reusables.actions.enterprise-storage-ha-backups %}
If you use {% data variables.product.prodname_enterprise_backup_utilities %} to back up {% data variables.product.product_location %}, it's important to note that {% data variables.product.prodname_actions %} data stored on your external storage provider is not included in the backup.
## About backups of {% data variables.product.product_name %} when using {% data variables.product.prodname_actions %}
This is an overview of the steps required to restore {% data variables.product.product_location %} with {% data variables.product.prodname_actions %} to a new appliance:
You can use {% data variables.product.prodname_enterprise_backup_utilities %} to back up and restore the data and configuration for {% data variables.product.product_location %} to a new instance. For more information, see "[Configuring backups on your appliance](/admin/configuration/configuring-backups-on-your-appliance)."
1. Confirm that the original appliance is offline.
1. Manually configure network settings on the replacement {% data variables.product.prodname_ghe_server %} appliance. Network settings are excluded from the backup snapshot, and are not overwritten by `ghe-restore`.
1. To configure the replacement appliance to use the same {% data variables.product.prodname_actions %} external storage configuration as the original appliance, from the new appliance, set the required parameters with `ghe-config` command.
- Azure Blob Storage
```shell
ghe-config secrets.actions.storage.blob-provider "azure"
ghe-config secrets.actions.storage.azure.connection-string "_Connection_String_"
```
- Amazon S3
```shell
ghe-config secrets.actions.storage.blob-provider "s3"
ghe-config secrets.actions.storage.s3.bucket-name "_S3_Bucket_Name"
ghe-config secrets.actions.storage.s3.service-url "_S3_Service_URL_"
ghe-config secrets.actions.storage.s3.access-key-id "_S3_Access_Key_ID_"
ghe-config secrets.actions.storage.s3.access-secret "_S3_Access_Secret_"
```
- Optionally, to enable S3 force path style, enter the following command:
```shell
ghe-config secrets.actions.storage.s3.force-path-style true
```
However, not all the data for {% data variables.product.prodname_actions %} is included in these backups. {% data reusables.actions.enterprise-storage-ha-backups %}
1. Enable {% data variables.product.prodname_actions %} on the replacement appliance. This will connect the replacement appliance to the same external storage for {% data variables.product.prodname_actions %}.
## Restoring a backup of {% data variables.product.product_name %} when {% data variables.product.prodname_actions %} is enabled
```shell
ghe-config app.actions.enabled true
ghe-config-apply
```
To restore a backup of {% data variables.product.product_location %} with {% data variables.product.prodname_actions %}, you must manually configure network settings and external storage on the destination instance before you restore your backup from {% data variables.product.prodname_enterprise_backup_utilities %}.
1. After {% data variables.product.prodname_actions %} is configured and enabled, use the `ghe-restore` command to restore the rest of the data from the backup. For more information, see "[Restoring a backup](/admin/configuration/configuring-backups-on-your-appliance#restoring-a-backup)."
1. Re-register your self-hosted runners on the replacement appliance. For more information, see [Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners).
1. Confirm that the source instance is offline.
1. Manually configure network settings on the replacement {% data variables.product.prodname_ghe_server %} instance. Network settings are excluded from the backup snapshot, and are not overwritten by `ghe-restore`. For more information, see "[Configuring network settings](/admin/configuration/configuring-network-settings)."
1. SSH into the destination instance. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
For more information on backing up and restoring {% data variables.product.prodname_ghe_server %}, see "[Configuring backups on your appliance](/admin/configuration/configuring-backups-on-your-appliance)."
```shell{:copy}
$ ssh -p 122 admin@HOSTNAME
```
1. Configure the destination instance to use the same external storage service for {% data variables.product.prodname_actions %} as the source instance by entering one of the following commands.
{% indented_data_reference reusables.actions.configure-storage-provider-platform-commands spaces=3 %}
{% data reusables.actions.configure-storage-provider %}
1. To prepare to enable {% data variables.product.prodname_actions %} on the destination instance, enter the following command.
```shell{:copy}
ghe-config app.actions.enabled true
```
{% data reusables.actions.apply-configuration-and-enable %}
1. After {% data variables.product.prodname_actions %} is configured and enabled, to restore the rest of the data from the backup, use the `ghe-restore` command. For more information, see "[Restoring a backup](/admin/configuration/configuring-backups-on-your-appliance#restoring-a-backup)."
1. Re-register your self-hosted runners on the destination instance. For more information, see "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."

View File

@@ -5,13 +5,14 @@ redirect_from:
- /enterprise/admin/installation/setting-up-a-staging-instance
- /admin/installation/setting-up-a-staging-instance
versions:
ghes: '*'
ghes: "*"
type: how_to
topics:
- Enterprise
- Infrastructure
- Upgrades
shortTitle: Set up a staging instance
miniTocMaxHeadingLevel: 3
---
## About staging instances
@@ -38,10 +39,118 @@ To thoroughly test {% data variables.product.product_name %} and recreate an env
## Setting up a staging instance
1. Perform a backup of your production instance using {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see the "About {% data variables.product.prodname_enterprise_backup_utilities %}" section of "[Configuring backups on your appliance](/enterprise/admin/guides/installation/configuring-backups-on-your-appliance#about-github-enterprise-server-backup-utilities)."
2. Set up a new instance to act as your staging environment. You can use the same guides for provisioning and installing your staging instance as you did for your production instance. For more information, see "[Setting up a {% data variables.product.prodname_ghe_server %} instance](/enterprise/admin/guides/installation/setting-up-a-github-enterprise-server-instance/)."
3. Optionally, if you plan to test {% data variables.product.prodname_actions %} functionality in your test environment, review the considerations for your logs and storage. For more information, see "[Using a staging environment](/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment)."
4. Restore your backup onto your staging instance. For more information, see the "Restoring a backup" section of "[Configuring backups on your appliance](/enterprise/admin/guides/installation/configuring-backups-on-your-appliance#restoring-a-backup)."
You can set up a staging instance from scratch and configure the instance however you like. For more information, see "[Setting up a {% data variables.product.product_name %} instance](/admin/installation/setting-up-a-github-enterprise-server-instance)" and "[Configuring your enterprise](/admin/configuration/configuring-your-enterprise)."
Alternatively, you can create a staging instance that reflects your production configuration by restoring a backup of your production instance to the staging instance.
1. [Back up your production instance](#1-back-up-your-production-instance).
2. [Set up a staging instance](#2-set-up-a-staging-instance).
3. [Configure {% data variables.product.prodname_actions %}](#3-configure-github-actions).
4. [Configure {% data variables.product.prodname_registry %}](#4-configure-github-packages).
5. [Restore your production backup](#5-restore-your-production-backup).
6. [Review the instance's configuration](#6-review-the-instances-configuration).
7. [Apply the instance's configuration](#7-apply-the-instances-configuration).
### 1. Back up your production instance
If you want to test changes on an instance that contains the same data and configuration as your production instance, back up the data and configuration from the production instance using {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see "[Configuring backups on your appliance](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)."
{% warning %}
**Warning**: If you use {% data variables.product.prodname_actions %} or {% data variables.product.prodname_registry %} in production, your backup will include your production configuration for external storage. To avoid potential loss of data by writing to your production storage from your staging instance, you must configure each feature in steps 3 and 4 before you restore your backup.
{% endwarning %}
### 2. Set up a staging instance
Set up a new instance to act as your staging environment. You can use the same guides for provisioning and installing your staging instance as you did for your production instance. For more information, see "[Setting up a {% data variables.product.prodname_ghe_server %} instance](/enterprise/admin/guides/installation/setting-up-a-github-enterprise-server-instance/)."
If you plan to restore a backup of your production instance, continue to the next step. Alternatively, you can configure the instance manually and skip the following steps.
### 3. Configure {% data variables.product.prodname_actions %}
Optionally, if you use {% data variables.product.prodname_actions %} on your production instance, configure the feature on the staging instance before restoring your production backup. If you don't use {% data variables.product.prodname_actions %}, skip to "[4. Configure {% data variables.product.prodname_registry %}](#4-configure-github-packages)."
{% warning %}
**Warning**: If you don't configure {% data variables.product.prodname_actions %} on the staging instance before restoring your production backup, your staging instance will use your production instance's external storage, which could result in loss of data. We strongly recommended that you use different external storage for your staging instance. For more information, see "[Using a staging environment](/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment)."
{% endwarning %}
{% data reusables.enterprise_installation.ssh-into-staging-instance %}
1. To configure the staging instance to use an external storage provider for {% data variables.product.prodname_actions %}, enter one of the following commands.
{% indented_data_reference reusables.actions.configure-storage-provider-platform-commands spaces=3 %}
{% data reusables.actions.configure-storage-provider %}
1. To prepare to enable {% data variables.product.prodname_actions %} on the staging instance, enter the following command.
```shell{:copy}
ghe-config app.actions.enabled true
```
### 4. Configure {% data variables.product.prodname_registry %}
Optionally, if you use {% data variables.product.prodname_registry %} on your production instance, configure the feature on the staging instance before restoring your production backup. If you don't use {% data variables.product.prodname_registry %}, skip to "[5. Restore your production backup](#5-restore-your-production-backup)."
{% warning %}
**Warning**: If you don't configure {% data variables.product.prodname_actions %} on the staging instance before restoring your production backup, your staging instance will use your production instance's external storage, which could result in loss of data. We strongly recommended that you use different external storage for your staging instance.
{% endwarning %}
1. Review the backup you will restore to the staging instance.
- If you took the backup with {% data variables.product.prodname_enterprise_backup_utilities %} 3.5 or later, the backup includes the configuration for {% data variables.product.prodname_registry %}. Continue to the next step.
- If you took the backup with {% data variables.product.prodname_enterprise_backup_utilities %} 3.4 or earlier, configure {% data variables.product.prodname_registry %} on the staging instance. For more information, see "[Getting started with {% data variables.product.prodname_registry %} for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)."
{% data reusables.enterprise_installation.ssh-into-staging-instance %}
1. Configure the external storage connection by entering the following commands, replacing the placeholder values with actual values for your connection.
- Azure Blob Storage:
```shell{:copy}
ghe-config secrets.packages.blob-storage-type "azure"
ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME"
ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
```
- Amazon S3:
```shell{:copy}
ghe-config secrets.packages.blob-storage-type "s3"
ghe-config secrets.packages.service-url "S3 SERVICE URL"
ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME"
ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID"
ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
```
1. To prepare to enable {% data variables.product.prodname_registry %} on the staging instance, enter the following command.
```shell{:copy}
ghe-config app.packages.enabled true
```
### 5. Restore your production backup
Use the `ghe-restore` command to restore the rest of the data from the backup. For more information, see "[Restoring a backup](/admin/configuration/configuring-backups-on-your-appliance#restoring-a-backup)."
If the staging instance is already configured and you're about to overwrite settings, certificate, and license data, add the `-c` option to the command. For more information about the option, see [Using the backup and restore commands](https://github.com/github/backup-utils/blob/master/docs/usage.md#restoring-settings-tls-certificate-and-license) in the {% data variables.product.prodname_enterprise_backup_utilities %} documentation.
### 6. Review the instance's configuration
To access the staging instance using the same hostname, update your local hosts file to resolve the staging instance's hostname by IP address by editing the `/etc/hosts` file in macOS or Linux, or the `C:\Windows\system32\drivers\etc` file in Windows.
{% note %}
**Note**: Your staging instance must be accessible from the same hostname as your production instance. Changing the hostname for {% data variables.product.product_location %} is not supported. For more information, see "[Configuring a hostname](/admin/configuration/configuring-network-settings/configuring-a-hostname)."
{% endnote %}
Then, review the staging instance's configuration in the {% data variables.enterprise.management_console %}. For more information, see "[Accessing the {% data variables.enterprise.management_console %}](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)."
{% warning %}
**Warning**: If you configured {% data variables.product.prodname_actions %} or {% data variables.product.prodname_registry %} for the staging instance, to avoid overwriting production data, ensure that the external storage configuration in the {% data variables.enterprise.management_console %} does not match your production instance.
{% endwarning %}
### 7. Apply the instance's configuration
To apply the configuration from the {% data variables.enterprise.management_console %}, click **Save settings**.
## Further reading

View File

@@ -150,7 +150,7 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
| Keyboard shortcut | Description
|-----------|------------
|<kbd></kbd>+<kbd>f</kbd> (Mac) or <kbd>Ctrl</kbd>+<kbd>f</kbd> (Windows/Linux) | Focus filter field
|<kbd>Command</kbd>+<kbd>f</kbd> (Mac) or <kbd>Ctrl</kbd>+<kbd>f</kbd> (Windows/Linux) | Focus filter field
|<kbd>←</kbd> | Move cell focus to the left
|<kbd>→</kbd> | Move cell focus to the right
|<kbd>↑</kbd> | Move cell focus up
@@ -162,7 +162,7 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr
|-----------|------------
|<kbd>Enter</kbd> | Toggle edit mode for the focused cell
|<kbd>Escape</kbd> | Cancel editing for the focused cell
|<kbd></kbd>+<kbd>Shift</kbd>+<kbd>\</kbd> (Mac) or <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>\</kbd> (Windows/Linux) | Open row actions menu
|<kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>\</kbd> (Mac) or <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>\</kbd> (Windows/Linux) | Open row actions menu
|<kbd>Shift</kbd>+<kbd>Space</kbd> | Select item
|<kbd>Space</kbd> | Open selected item
|<kbd>e</kbd> | Archive selected items

View File

@@ -75,6 +75,10 @@ childGroups:
octicon: ShieldLockIcon
children:
- code-security
- code-security/supply-chain-security
- code-security/dependabot
- code-security/code-scanning
- code-security/secret-scanning
- name: Client apps
octicon: DeviceMobileIcon
children:

View File

@@ -55,6 +55,13 @@ You can enable or disable features for all repositories.
{% data reusables.advanced-security.note-org-enable-uses-seats %}
{% ifversion ghes or ghec or ghae %}
{% note %}
**Note:** If you encounter an error that reads "GitHub Advanced Security cannot be enabled because of a policy setting for the organization," contact your enterprise admin and ask them to change the GitHub Advanced Security policy for your enterprise. For more information, see "[Enforcing policies for Advanced Security in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise)."
{% endnote %}
{% endif %}
1. Go to the security and analysis settings for your organization. For more information, see "[Displaying the security and analysis settings](#displaying-the-security-and-analysis-settings)."
2. Under "Code security and analysis", to the right of the feature, click **Disable all** or **Enable all**. {% ifversion ghes or ghec %}The control for "{% data variables.product.prodname_GH_advanced_security %}" is disabled if you have no available seats in your {% data variables.product.prodname_GH_advanced_security %} license.{% endif %}
{% ifversion fpt %}
@@ -88,7 +95,7 @@ You can enable or disable features for all repositories.
{% endif %}
{% ifversion ghae or ghes %}
3. Click **Enable/Disable all** or **Enable/Disable for eligible repositories** to confirm the change.
5. Click **Enable/Disable all** or **Enable/Disable for eligible repositories** to confirm the change.
![Button to enable feature for all the eligible repositories in the organization](/assets/images/enterprise/github-ae/organizations/security-and-analysis-enable-secret-scanning-existing-repos-ghae.png)
{% endif %}

View File

@@ -37,7 +37,7 @@ All {% data variables.product.prodname_pages %} sites, including sites that are
3. Under "{% data variables.product.prodname_pages %}," select **Enforce HTTPS**.
![Enforce HTTPS checkbox](/assets/images/help/pages/enforce-https-checkbox.png)
## Troubleshooting certificate provisioning ("Certificate not yet created" error")
## Troubleshooting certificate provisioning ("Certificate not yet created" error)
When you set or change your custom domain in the Pages settings, an automatic DNS check begins. This check determines if your DNS settings are configured to allow {% data variables.product.prodname_dotcom %} to obtain a certificate automatically. If the check is successful, {% data variables.product.prodname_dotcom %} queues a job to request a TLS certificate from [Let's Encrypt](https://letsencrypt.org/). On receiving a valid certificate, {% data variables.product.prodname_dotcom %} automatically uploads it to the servers that handle TLS termination for Pages. When this process completes successfully, a check mark is displayed beside your custom domain name.

View File

@@ -0,0 +1,5 @@
versions:
fpt: '*'
ghec: '*'
ghes: '>3.7'
ghae: '>3.7'

View File

@@ -0,0 +1,5 @@
1. To apply the configuration and enable {% data variables.product.prodname_actions %} to connect to your external storage provider, enter the following command.
```shell{:copy}
ghe-config-apply
```

View File

@@ -0,0 +1,10 @@
- Azure Blob Storage:
```shell{:copy}
ghe-config secrets.actions.storage.blob-provider "azure"
```
- Amazon S3:
```shell{:copy}
ghe-config secrets.actions.storage.blob-provider "s3"
```

View File

@@ -0,0 +1,20 @@
1. Configure the external storage connection by entering the following commands, replacing the placeholder values with actual values for your connection.
- Azure Blob Storage:
```shell{:copy}
ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
```
- Amazon S3:
```shell{:copy}
ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME"
ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL"
ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID"
ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
```
Optionally, to force path-style addressing for S3, also enter the following command.
```shell{:copy}
ghe-config secrets.actions.storage.s3.force-path-style true
```

View File

@@ -0,0 +1,5 @@
1. SSH into the staging instance. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
```shell{:copy}
$ ssh -p 122 admin@HOSTNAME
```

View File

@@ -1,4 +1,4 @@
1. To set your SSH signing key in Git, paste the text below, substituting the contents of your clipboard for the key you'd like to use. Since the key contains spaces, you must wrap it in quotes:
```bash
$ git config --global user.signingkey 'ssh-ed25519 AAAAC3(...) user@example.com'
```
$ git config --global user.signingkey 'key::ssh-ed25519 AAAAC3(...) user@example.com'
```

View File

@@ -0,0 +1,3 @@
1. Click **Update profile**.
![Screenshot of the update profile button.](/assets/images/help/profile/update-profile-button.png)

View File

@@ -9,7 +9,6 @@ const homepage = path.posix.join(process.cwd(), 'content/index.md')
const { data } = frontmatter(await fs.readFile(homepage, 'utf8'))
export const productIds = data.children
export const productGroups = []
const externalProducts = data.externalProducts
const internalProducts = {}
@@ -45,17 +44,37 @@ for (const productId of productIds) {
export const productMap = Object.assign({}, internalProducts, externalProducts)
for (const group of data.childGroups) {
productGroups.push({
name: group.name,
icon: group.icon || null,
octicon: group.octicon || null,
children: group.children.map((id) => productMap[id]),
function getPage(id, lang, pageMap) {
const productId = id.split('/')[0]
const product = productMap[productId]
const href = removeFPTFromPath(path.posix.join('/', lang, product.versions[0], id))
const page = pageMap[href]
if (!page) {
throw new Error(`Unable to find a page by the href '${href}'. Review your 'childGroups' frontmatter maybe.`)
}
// Return only the props needed for the ProductSelectionCard, since
// that's the only place this is ever used.
return {
id,
name: page.shortTitle || page.title,
href: href.replace(`/${lang}/`, '/'),
versions: page.applicableVersions,
}
}
export function getProductGroups(pageMap, lang) {
return data.childGroups.map((group) => {
return {
name: group.name,
icon: group.icon || null,
octicon: group.octicon || null,
// Typically the children are product IDs, but we support deeper page paths too
children: group.children.map((id) => productMap[id] || getPage(id, lang, pageMap)),
}
})
}
export default {
productIds,
productMap,
productGroups,
}

View File

@@ -1,6 +1,6 @@
import liquid from './liquid.js'
import cheerio from 'cheerio'
import { encode } from 'html-entities'
import { encode, decode } from 'html-entities'
import stripHtmlComments from 'strip-html-comments'
import createProcessor from './create-processor.js'
@@ -52,17 +52,21 @@ async function renderContent(template = '', context = {}, options = {}) {
let html = vFile.toString()
// Remove unwanted newlines (which appear as spaces) from inline tags inside tables
if (html.includes('<table>')) html = removeNewlinesFromInlineTags(html)
if (html.includes('<table>')) {
html = removeNewlinesFromInlineTags(html)
}
if (options.textOnly) {
html = cheerio.load(html).text().trim()
html = fastTextOnly(html)
}
if (options.cheerioObject) {
return cheerio.load(html, { xmlMode: true })
}
if (options.encodeEntities) html = encode(html)
if (options.encodeEntities) {
html = encode(html)
}
return html.trim()
} catch (error) {
@@ -85,6 +89,21 @@ function removeNewlinesFromInlineTags(html) {
return $('body').html()
}
// Given a piece of HTML return it without HTML. E.g.
// `<p>Foo &amp; bar</p>` becomes `Foo & bar`
// and `A <a href="">link</a> and <code>code</code>` becomes `A link and code`.
// Take advantage of the subtle fact that a lot of the times, the html value
// we get here is a single line that starts with `<p>` and ends with `</p>`
// and contains no longer HTML tags.
function fastTextOnly(html) {
if (!html) return ''
if (html.startsWith('<p>') && html.endsWith('</p>')) {
const middle = html.slice(3, -4)
if (!middle.includes('<')) return decode(middle.trim())
}
return cheerio.load(html, { xmlMode: true }).text().trim()
}
renderContent.liquid = liquid
export default renderContent

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5121f480fdb6f0f7cc76c784a1ece2172da12951627da6a3566b97c86abd9d4b
size 788894
oid sha256:c1e316800b0ecb7e0b6c4e22531b6dcc65ea0261d40b18d5df49b5e376019ebc
size 786148

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:18cd22742008db476acf4ed528a7273c006de8df2970f3ecbea55f4870ccb508
size 1596177
oid sha256:710509fe6a709be217ab3d3a0c841225e2c65fd540173a445005de6c099a1e93
size 1630178

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb50fc565352e93ec359860b930769b66cb65dbfd6f59daa932d23ed8aa6ba4f
size 1114565
oid sha256:1da730bf21034298ed9c76ea18e90cd3ba4203e7d6c6d2acf90d35d1bffcc5bd
size 1099296

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d8eacd20ae3f4090a04ab027f80376fd13bbe28da7f942204453ea5055b8191
size 4448425
oid sha256:7789fa5730a66069d43dacb834d66799481e1c5974cee6a402be5dcd7bee5fdf
size 4478847

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b85e6d1e3f6591ec8708e525a0f62c500260acb6e1906aced51297ac37ec79af
size 747973
oid sha256:9c1df3d276c7e3af2f2598e1631376f0692fc3d9acefdba7f5afc46d975753bb
size 746123

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:564fdb7a62b6cb20e64a5ba9c6bb4e2dd690e38f221fbc59cc45a8b44ae16a98
size 3112748
oid sha256:e5c96370e5a124ca2e005ae03cbfe50ff231e784ba08ad7f959a7cab21ec5803
size 3142521

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:819fadd54113bd3f70542a81b54f665ae6e513fd6fa82899dcd904b137c52ff8
size 831240
oid sha256:622a8f897c4f0aca676bab7468aacbf6cbc12c627b7898f23bb8d4fc011318ac
size 827874

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ae313e76b1da345047ffa298da3f3c7d11342881db3052c1697a14fd42aaadd9
size 4401860
oid sha256:8ba3897c4eb7b9882222d2db39de2184e5efc2557cc7cf994b3437f92b18a41a
size 4409958

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:72eac71d67a6ff5359786615d2dae7160f98182443a3a91b8c3c3a3ce55cb8e3
size 734933
oid sha256:eb35d825b812c23d569ae8d21dc490b805d1493a489323b95d1bdfa73209e9dd
size 732723

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ddc65ee34586e385840ac280444237a83458752d19606e2e05cabf1dbbdde453
size 3092683
oid sha256:84776107eefcba41d68db37bf99040c573bc170fb81955fb30a46ef67f28e7fa
size 3120912

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:668b89ba00ce5a8f19f48444c649dc6e5e3307b4b7f8df311672132554dae0d2
size 813690
oid sha256:9a1a4d215db506ff72ef54e9b105fb02df64d4e63a57ae73da2cbfd70f1fbd8b
size 810545

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6345fe4fa65ede957aae0d4e81e7ed349b3fbf8a7f33743626c3f40351fed120
size 1650464
oid sha256:0e6a20e4ea5227a79691b0f73db72af401d42276012b818684f840a989784d94
size 1685425

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:79f54c15b818a1ced7c97c3d943c2080d3f64097d7f812362ee6d0606ce4d501
size 1150596
oid sha256:125107e1e60bb1cd23806b8f349f64a3563ff7ae4de733489fb7b13414b2bf2c
size 1135321

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:53bb91ac395460cf82db45687603d799867cc9db29a8a5728c17004902f71e81
size 4549805
oid sha256:c86c0b042a5fde7af934fc8297bbd81342c74432dc99392c8c58ded12fdc2120
size 4582821

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f9adb98bfbd2723891740a99209a4f605185df7e92de97d75047c99478a7ee7
size 770007
oid sha256:3aae190eb2aa194f8774dba4cc18820f111f0bad2f90ded56788deca270fbee3
size 767737

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b0ded521a606e8aa71653552788a71504291ec55137ccc1d209695d10011623
size 3207386
oid sha256:dcf06d47fe6636f2331f3d3b61f0c1bcdde9a90a4376dc63cf1a048891999e2d
size 3237286

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:06e06a52ef5b4a952e1ec2980364fd76acd819868b15dc5defe8d7b286b9ded4
size 855570
oid sha256:d57ead981442e6bbe1cdde849653f253185be76520bd26a06567209795376854
size 852049

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1d5f239fe9af3345459fed3a350102ab785309e9d4e178807b8f5f582715602e
size 4531434
oid sha256:c4cb807820d41bf8dab64a884cbb08283e4ae7d484f9d191667e96150518e94a
size 4542358

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a7592d3e1330012e48011c74f1049ca92a50753ae29067db1d646bb11c5786e
size 757062
oid sha256:f6e3df5252a3c42a855791fdf293c1727b1367ca64d51d3e3b095fd4d2b898ce
size 754664

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:45309267c28d3313bfdd373eaec4c0992b36e67575a86bec7a224e970e63f183
size 3186580
oid sha256:16d035c3747768031dfed30ee9c8a45adacb895745eb7e99523cf0cf4ceae2a7
size 3216823

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:72951a2eb5e0f9a68ba41d043394b5e515051491587b6c809b31f77633211bbb
size 816209
oid sha256:82f1ab8939d5dd26cbcf8d8e8127685d7df040e34766c0f033dcfb2ed84b608a
size 813071

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6603d1b045aea0cac4037150c8765ce2cac99ffcf80b320f79abe560e1717547
size 1664467
oid sha256:37798c560348a57b9281d4485d57e49df40395c217e17139586b8ecddf5db120
size 1699281

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:004afb224f4e7485a3cad35982c240cf0b79d9c3b09af9195ee0aa3b537c70bd
size 1161825
oid sha256:2c494b17ccad4a828b13b60fef8e2d2c65b561af145fc2f3daa803240f6bf763
size 1146911

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:672ef25e3d361f05076812b1613456d3d20354508931ba457e7b9001c4a95397
size 4610167
oid sha256:97e6b7d79453f2623564b58e3bdf191a5df33c074a3fa9318ed06024b4a56a96
size 4643132

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e06d3c95c302579fd776f9c3141944a2cbe5abd618bf275fb1f8403dd90a8fb
size 774341
oid sha256:f2d1a80587e182370a76baaab88aa7e4e53f8c0fee254b51a2d75818d8667b81
size 772282

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d67b1f82f0235bfc342df036123bbef424b2d6c5fd6e47c2dd1a9a91c91b3f3d
size 3234937
oid sha256:6b77ef7d174387505ae2b6de83dfd9c6b38899319ce87b445532fbb0600d8816
size 3265028

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c1a3bd6832a1861312f2aa15bb1478cfad927450610324eeab016e9491b58393
size 857810
oid sha256:f8018b669d0fc4ca288f42e8793e795f8442a97436e87eaf9e30b5acb8a3dddb
size 854092

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:60451511245d61f0ea8290bce20741540a8b3b5e57b193a9625d772cf6a34148
size 4557130
oid sha256:86278d13de69f0c4e59e0279bab7a93251791a41a55ef53378ab1294c4f44cc8
size 4568763

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:00ded954851686d674505a9863a202c5bba647b9b4739b4e44664df01ede80da
size 761318
oid sha256:d054eecda396c7f332cf7f9e4fe29e426e632d447f8f030c143699e0e1b5d5dd
size 759001

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0444d828fe7cdf6888a86ed6ad4727fce83a53a42af415c325646fca119cc21e
size 3213807
oid sha256:30bc27bf2b1d4d6aecb06bc29a3caf68989902ab144e99d0b6278b9fc0732dc0
size 3243686

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da7f1513caf8ee29d6250b00ef44f91abfe50daee6cb10c5a39da785c249aa8f
size 846670
oid sha256:3200128e89914ac5839d08ce3320acb356b22494f293c002decc7b05ca21697d
size 843382

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04819e1bf874a81059eaad955ee67881ebdd0a0c800148ffb1cc2a034c00f72b
size 1727198
oid sha256:6391e168f9f3b253592e9212c5f682b1185ebe6d357d347c2ef8419b5afeb79e
size 1764903

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:424b7d0780f0ab9e53cbd50e36fbbedceac786eb5aa75ca4ad0a55f06099b6af
size 1203375
oid sha256:39506d96b315a4f5baf2f7c593fa389d1d6cc733544deb60f5c7f3b43d21ebf2
size 1187033

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e17c88f499dec0b2bc90124bee78b998a721b82abbf25c2041ed25462e02b0e0
size 4773184
oid sha256:5f2b8dcda46be7ac2312f7fdf54e66cb3d4ea6bd3ab1a5b24f6592317876e8b3
size 4809942

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:156b697c0c49fed7bbdc53f7382be4e990279e5b979e140a02287896c249ffa3
size 799424
oid sha256:f151d81357d6763dd75927bd9103b9bf9a3f955a799a1e7205e05b3f89981ee0
size 797215

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d265e96c7d13f1b9fa26fff39217b6a60c445294f0006b0a900f850077bb1c30
size 3347563
oid sha256:687f3e4f1fa8531861e097027ec06fcc015999479d26528af7e1f14057f4abb5
size 3379783

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cf310287fb64a4d3444561c191c9992420cf8f5022a5055261ad1b55be9a7178
size 887961
oid sha256:a95fb41a71d410159960c52cb1f40b1e34a3a79d6da6d4d3265de7203dc1fba3
size 884301

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9030ae368d2225311cfaf98d880bfdd90ad33c9ebd900cf5e8caac05813daa59
size 4727733
oid sha256:17fa68c49ad52af79f3dae4817178ca2b55ccdd9087005034f092b980c3e03e2
size 4738701

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:52d7b8cb3afdd76e844c5c88e5c0d7d6aa1f60a3e6b19f5d0507af9a4af6182f
size 786313
oid sha256:8e7430213368cf17013ce3c3c16d9f0a417c8220924b6a9fe521ac9fd4b0e7d6
size 783970

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8dad76ac19fa4d3d1cf68a1950662ed188d6d239c4fb8fb4a9dffc96959695a4
size 3329946
oid sha256:b511ec3d8b829ea994fcb2b446eab37900c04435c7371e10d7e19e70f91f9335
size 3359310

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e30d6ed32f7e1ceb2085e1a2f8ec08ae19ebcebb9dd885795f9bafd6ef36912
size 869767
oid sha256:3dd69fcc279e4e3bb8cdc8304655546c8754f7b83b6bfc20977634e07b1f09ae
size 866724

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e77968de86678bec23c56ef30c504004d576e01801752fdd326d8f16366e9806
size 1770304
oid sha256:96345e899a6bfb6be04f78b1cbc6d11b6a2e57e4440291f439303a279f51ec4e
size 1808420

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0496e1b3f1cdba380d9eca2e15a54a54a83b8a301c7cffc7d0ea779bd6ce798
size 1238474
oid sha256:03724e59d8f1ef414f97583424dea6505a9c65cb1a37b3af410cd4aa42d8540c
size 1221916

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a12e3fd11592da45ecf08ee04e271e99978e74d6051388142e7f738ecc13b63e
size 4908651
oid sha256:b5c47a807549dda866b5a0952dc4af1fefdaa5107bec19ba541b8df0c9770027
size 4948429

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:309dc5732b8b04a9e21887c7d09befceca851b45762ad877465b4e6ba914a7a4
size 823202
oid sha256:23e5c6916666549fd803da30c5776b65810f0f4da52a4720769d30c9202d1bbc
size 821089

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af1b7017b25141afb55c86fa4b824be5d3c544aad15b8ca2eb3e4a8a33731ea3
size 3453501
oid sha256:9f321a2502dd20cb4f936f853fe7de755e83fe7c57a061424e76d438a67e7b47
size 3486514

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29d4429ba3c8665db1495f2b278b559d78e340f7d80841b8c0a27400f566c3ca
size 913745
oid sha256:f83c4960a0f0a632e4613f1bdddebe6269bea38b42f75b07a408be85f41d2fb0
size 910017

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:95929764a966d73159925f2bbd92218e3cd8aa322e0fd5ff7396612c53ff1db6
size 4870173
oid sha256:f64328274e090e5c2ba135c90d641966dcba4032518785ae1ccadd45bc9e9a74
size 4880026

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9e034c27f17f1db32b66cc419869c7721cfec0542d40eefc5f5b5d9bfb593b1
size 809192
oid sha256:65ad519c447364e85ff764defab9cb37770c8c91164c3cb3cdc9361d83d0fb8a
size 806840

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d7fb553a90ccc6b8b08c0ab987fad178c4604bbc9c3643fc09a93d6706d98148
size 3430757
oid sha256:e48731fc378b19877fd823de5654f9d91106523c1986c16d87ff37bf6ed19cc3
size 3461096

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0dc040bfa61156dab14a1ed86cc86f91599a8249f5469743c5a3962cff2f2b61
size 1022135
oid sha256:e660a243cbf7ca2203a35b0acf51cdf2deeb0d1a8cf5352a6a0b20f2fdc9c192
size 1018177

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a17d59e71509a90fdeceada31abcb56b20f1e44e3135a7567742c646b9d66824
size 1861169
oid sha256:7bc528515d846fdb30f41d0a5f91f8821de0b83866b0ae553b86dacc8c602427
size 1904769

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:19e70467098f7db3e38a48a0b33a31a77c7997e890a2d4138d2ee9dc36964aed
size 1490464
oid sha256:80c26d581f24780340235a1c532b83d82af45b9ef34d11e82e8d82acaa328eee
size 1465981

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8aa98b9e8aca092c05eace91e7c8de1df77c9c9758ffb1e13bafb3e309775b7f
size 5645661
oid sha256:723f334dd52fc5b14922e14b71045141987dae3ba254631a2527ae02abe11f4a
size 5689551

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8b28d738c6eec6063a3f16708c50781864967628df477baf34e2c0b4689e1fd2
size 953825
oid sha256:0167aba0dc9bd64d9dd935f544956d7f5b312d43e6b2d1b1233a4200581ebcde
size 950871

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce767e32a21d439bc7370b5c71fc016ccb47e191a765cc2f08d6f7a25a5f8596
size 3915429
oid sha256:6a004a7c0fb616d999cd6ca7346ca72cad16d5966ea711594b44b8d873dd8026
size 3949177

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e7be13af713b26e65007c841838e3f7304f4ac89516eda5aab35659b9c8c2757
size 1069496
oid sha256:f1eea385ef741178474b7607665f7ac04ce2d400a0df30aa3170b06bfc265f7e
size 1064768

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:35be73c6ceab12fdf28e6a0e79b35aa447a7ea78267e557248c6667350ed7ecb
size 5543220
oid sha256:22f4d54634e00cf73c322b9c95d33b64f69e7871f0c6a9509c3ed2daf3ab2aa3
size 5551974

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea19d8fac4fa12d5c91acd2214b1419e490ee0b4b7f61ed199ea8104c63bbc9f
size 936768
oid sha256:5675abd03152c37ad5674c39f73e09dbbc36ff13650ea971b485d0b575fabfe1
size 933866

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:88dcb13ef6005f5ba0af778bea14fb9cced3c659f73c87bbfc67fe88e5052e1e
size 3872053
oid sha256:2e14caac7c2e279a3cb383346ae2476fea4741bc29b96cc971f8f15c769a8843
size 3906420

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d320c9393f37dc8b04a3310f2d05239a7350de0664de84c73ca7c9981fa5763
size 653323
oid sha256:4841bf9df42a552b7ce6317501c21e1f825356d9868008d2c4df10adf34b0197
size 650462

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:463aa5958331a8656c65d20650590477505e5d21b435e5259c89ba47c3087344
size 1342394
oid sha256:19c0275dabc40c645261bb7e9f4387bf60afed131d0fd2e17a53d7e261e441f2
size 1376971

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:43b8b6c97a22e110cdc0cde8ac56dc119fa4f670998157668df8d5e7f63082b5
size 958475
oid sha256:523d1e5d6b782f885f5f53da55cc796232dcb3d9083b8d15b8e3c05040bee7e8
size 943508

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3efaf0cb0b857afa1e2773f645333e550a7ab0439d6b4384fb76de9635e64ce
size 3744871
oid sha256:78ade404fd68e77399e7b468ada01239b6136a64a3a906a7be079895ed64958d
size 3774973

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3394d900d7c4645aceaa5da5cf650b9bbcfd3d285ae811386a7ac31c2f08587
size 629146
oid sha256:df827a4ebfb21153e06ae4db559ccb4b604050aab07a68b67d790d7a6ca759c8
size 626914

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e100888b42c0daf81f5f1c4183b27f1684dbe6b607c1beef054c3bbdd7ff6da3
size 2551033
oid sha256:3433a73c408be364d05c249abcc5caaea24150d5e1249c06ffa5f4a3654562bf
size 2582551

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:73fa273c55a4b58ebabc9b41dde834d69120620c92f7c44a44a0afc2dadc28b5
size 686680
oid sha256:d4c4ac8a030062ce902406f0f079469976c54dc91aa86dfa365088d1fe2b809b
size 683258

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b07470e287c8b6809984d7b8608603d73bf9dbb5e96193b2b59b22ac8be1850f
size 3562903
oid sha256:b539996a396387f1293073d9d2c0cece58ecca7fd319c729bad06994840fa594
size 3572509

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3f7864a94711408556bb89056cd3bcc8b6568c7991dbd009b395623f8633b519
size 618492
oid sha256:6f9c187e985a4655a40195ac49bc20ecea8bef3d018bd1113cd72756143ddcef
size 616372

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c5573de11ddff7fd79f0898ce1c0f1acb982c881479be83138a0d70e34f710bb
size 2538729
oid sha256:edf18d1d54d920622cd3001ea094df1a17ceaadd58b8365113670ea952035f63
size 2568451

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c4af62ea86b9750f70d944cff9d7e084bb496b5ceb44ce7c95093b79127f6368
size 1000029
oid sha256:da0f8c9e39ac71007377768eb06e5cf4ed0e7174a7f2b5d9e6e840918df6346d
size 996243

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:168e2aadaf980162cb02582d1e5349545a063e5d573cd9a1fd885061d82bdd00
size 2019368
oid sha256:d57620b1ca9dbfb375d1c86d32b4275047b00e2a33796a71ba0e5ccdaafff6ff
size 2062513

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c01161c988a3911f2ea21a78937fd05193cf6e5b87bfe7b2c309d40b4b885748
size 1430363
oid sha256:14c6ba446cf97171bdfb65687eaedfb62bbaac050e16890aa1f5422541a2b08a
size 1413022

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:068d671a5716879e426f0d328e99da53636ed496709366ca24ea72ec2f625e14
size 5720741
oid sha256:f45fafeabd640c74eb488ef7839b6b4ea4aed1033df1fadee13c5a938472ba2e
size 5763746

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