diff --git a/assets/images/help/profile/display-local-time-checkbox.png b/assets/images/help/profile/display-local-time-checkbox.png new file mode 100644 index 0000000000..78f05ea9da Binary files /dev/null and b/assets/images/help/profile/display-local-time-checkbox.png differ diff --git a/assets/images/help/profile/location-field.png b/assets/images/help/profile/location-field.png new file mode 100644 index 0000000000..86a85d52b4 Binary files /dev/null and b/assets/images/help/profile/location-field.png differ diff --git a/assets/images/help/profile/profile-location-and-time.png b/assets/images/help/profile/profile-location-and-time.png new file mode 100644 index 0000000000..b9714e6222 Binary files /dev/null and b/assets/images/help/profile/profile-location-and-time.png differ diff --git a/assets/images/help/profile/profile-relative-time.png b/assets/images/help/profile/profile-relative-time.png new file mode 100644 index 0000000000..6bae8d533d Binary files /dev/null and b/assets/images/help/profile/profile-relative-time.png differ diff --git a/assets/images/help/profile/time-zone-dropdown.png b/assets/images/help/profile/time-zone-dropdown.png new file mode 100644 index 0000000000..8ed6b390a3 Binary files /dev/null and b/assets/images/help/profile/time-zone-dropdown.png differ diff --git a/components/article/PlatformPicker.tsx b/components/article/PlatformPicker.tsx index accb40ae3f..359d77fec4 100644 --- a/components/article/PlatformPicker.tsx +++ b/components/article/PlatformPicker.tsx @@ -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 ( {platformOptions.map((option) => { + params.set(platformQueryKey, option.id) return ( { + onClick={(event) => { + event.preventDefault() onClickPlatform(option.id) }} > diff --git a/components/article/ToolPicker.tsx b/components/article/ToolPicker.tsx index 9549531228..31c5b3e8b5 100644 --- a/components/article/ToolPicker.tsx +++ b/components/article/ToolPicker.tsx @@ -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 { - 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 ( - {detectedTools.map((tool) => ( - { - onClickTool(tool) - }} - > - {allTools[tool]} - - ))} + {detectedTools.map((tool) => { + params.set(toolQueryKey, tool) + return ( + { + event.preventDefault() + onClickTool(tool) + }} + > + {allTools[tool]} + + ) + })} ) } diff --git a/components/lib/events.ts b/components/lib/events.ts index 7a1758342a..7acfeefc02 100644 --- a/components/lib/events.ts +++ b/components/lib/events.ts @@ -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, }) diff --git a/components/rest/RestCodeSamples.tsx b/components/rest/RestCodeSamples.tsx index 5b0e3b6d01..f7938a7092 100644 --- a/components/rest/RestCodeSamples.tsx +++ b/components/rest/RestCodeSamples.tsx @@ -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:', }) } diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md index 846149fd43..850fdd4282 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md @@ -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 diff --git a/content/actions/security-guides/security-hardening-for-github-actions.md b/content/actions/security-guides/security-hardening-for-github-actions.md index c39ef22235..9b7fb1a826 100644 --- a/content/actions/security-guides/security-hardening-for-github-actions.md +++ b/content/actions/security-guides/security-hardening-for-github-actions.md @@ -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)." diff --git a/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md b/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md index 203f3fa1fb..bd71918b12 100644 --- a/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md +++ b/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md @@ -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)." diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md index d82586d25b..6fa069a0f2 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md @@ -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 diff --git a/content/get-started/using-github/keyboard-shortcuts.md b/content/get-started/using-github/keyboard-shortcuts.md index f0ef5e37da..63db7352b5 100644 --- a/content/get-started/using-github/keyboard-shortcuts.md +++ b/content/get-started/using-github/keyboard-shortcuts.md @@ -150,7 +150,7 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr | Keyboard shortcut | Description |-----------|------------ -|+f (Mac) or Ctrl+f (Windows/Linux) | Focus filter field +|Command+f (Mac) or Ctrl+f (Windows/Linux) | Focus filter field | | Move cell focus to the left | | Move cell focus to the right | | Move cell focus up @@ -162,7 +162,7 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr |-----------|------------ |Enter | Toggle edit mode for the focused cell |Escape | Cancel editing for the focused cell -|+Shift+\ (Mac) or Ctrl+Shift+\ (Windows/Linux) | Open row actions menu +|Command+Shift+\ (Mac) or Ctrl+Shift+\ (Windows/Linux) | Open row actions menu |Shift+Space | Select item |Space | Open selected item |e | Archive selected items diff --git a/content/index.md b/content/index.md index 483ef9a756..07ba324c2a 100644 --- a/content/index.md +++ b/content/index.md @@ -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: diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md index 00afbd2daa..58f47d8e9d 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization.md @@ -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 %} diff --git a/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md b/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md index 6f78ece01d..ba9d729c48 100644 --- a/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md +++ b/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md @@ -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. diff --git a/data/features/profile-time-zone.yml b/data/features/profile-time-zone.yml new file mode 100644 index 0000000000..069f139458 --- /dev/null +++ b/data/features/profile-time-zone.yml @@ -0,0 +1,5 @@ +versions: + fpt: '*' + ghec: '*' + ghes: '>3.7' + ghae: '>3.7' diff --git a/data/reusables/actions/apply-configuration-and-enable.md b/data/reusables/actions/apply-configuration-and-enable.md new file mode 100644 index 0000000000..4794ca96fc --- /dev/null +++ b/data/reusables/actions/apply-configuration-and-enable.md @@ -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 + ``` diff --git a/data/reusables/actions/configure-storage-provider-platform-commands.md b/data/reusables/actions/configure-storage-provider-platform-commands.md new file mode 100644 index 0000000000..7fe2767e34 --- /dev/null +++ b/data/reusables/actions/configure-storage-provider-platform-commands.md @@ -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" + ``` diff --git a/data/reusables/actions/configure-storage-provider.md b/data/reusables/actions/configure-storage-provider.md new file mode 100644 index 0000000000..a2858c74b6 --- /dev/null +++ b/data/reusables/actions/configure-storage-provider.md @@ -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 + ``` diff --git a/data/reusables/enterprise_installation/ssh-into-staging-instance.md b/data/reusables/enterprise_installation/ssh-into-staging-instance.md new file mode 100644 index 0000000000..017373c533 --- /dev/null +++ b/data/reusables/enterprise_installation/ssh-into-staging-instance.md @@ -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 + ``` diff --git a/data/reusables/gpg/paste-ssh-public-key.md b/data/reusables/gpg/paste-ssh-public-key.md index 1274a0acb5..e8c882a96f 100644 --- a/data/reusables/gpg/paste-ssh-public-key.md +++ b/data/reusables/gpg/paste-ssh-public-key.md @@ -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' - ``` \ No newline at end of file + $ git config --global user.signingkey 'key::ssh-ed25519 AAAAC3(...) user@example.com' + ``` diff --git a/data/reusables/profile/update-profile.md b/data/reusables/profile/update-profile.md new file mode 100644 index 0000000000..b02da50150 --- /dev/null +++ b/data/reusables/profile/update-profile.md @@ -0,0 +1,3 @@ +1. Click **Update profile**. + + ![Screenshot of the update profile button.](/assets/images/help/profile/update-profile-button.png) diff --git a/lib/all-products.js b/lib/all-products.js index 7364b34cba..0d941c3afa 100644 --- a/lib/all-products.js +++ b/lib/all-products.js @@ -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, } diff --git a/lib/render-content/renderContent.js b/lib/render-content/renderContent.js index a5db3a2ddb..c22ace3d2d 100644 --- a/lib/render-content/renderContent.js +++ b/lib/render-content/renderContent.js @@ -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('')) html = removeNewlinesFromInlineTags(html) + if (html.includes('
')) { + 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. +// `

Foo & bar

` becomes `Foo & bar` +// and `A link and 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 `

` and ends with `

` +// and contains no longer HTML tags. +function fastTextOnly(html) { + if (!html) return '' + if (html.startsWith('

') && html.endsWith('

')) { + 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 diff --git a/lib/search/indexes/github-docs-3.2-cn-records.json.br b/lib/search/indexes/github-docs-3.2-cn-records.json.br index 1e5b9f9e2f..67a13260e1 100644 --- a/lib/search/indexes/github-docs-3.2-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.2-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5121f480fdb6f0f7cc76c784a1ece2172da12951627da6a3566b97c86abd9d4b -size 788894 +oid sha256:c1e316800b0ecb7e0b6c4e22531b6dcc65ea0261d40b18d5df49b5e376019ebc +size 786148 diff --git a/lib/search/indexes/github-docs-3.2-cn.json.br b/lib/search/indexes/github-docs-3.2-cn.json.br index fa7a006ef7..f650eea255 100644 --- a/lib/search/indexes/github-docs-3.2-cn.json.br +++ b/lib/search/indexes/github-docs-3.2-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:18cd22742008db476acf4ed528a7273c006de8df2970f3ecbea55f4870ccb508 -size 1596177 +oid sha256:710509fe6a709be217ab3d3a0c841225e2c65fd540173a445005de6c099a1e93 +size 1630178 diff --git a/lib/search/indexes/github-docs-3.2-en-records.json.br b/lib/search/indexes/github-docs-3.2-en-records.json.br index c93c7c16db..cf3d889dba 100644 --- a/lib/search/indexes/github-docs-3.2-en-records.json.br +++ b/lib/search/indexes/github-docs-3.2-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb50fc565352e93ec359860b930769b66cb65dbfd6f59daa932d23ed8aa6ba4f -size 1114565 +oid sha256:1da730bf21034298ed9c76ea18e90cd3ba4203e7d6c6d2acf90d35d1bffcc5bd +size 1099296 diff --git a/lib/search/indexes/github-docs-3.2-en.json.br b/lib/search/indexes/github-docs-3.2-en.json.br index 84575afa3a..61582a835d 100644 --- a/lib/search/indexes/github-docs-3.2-en.json.br +++ b/lib/search/indexes/github-docs-3.2-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d8eacd20ae3f4090a04ab027f80376fd13bbe28da7f942204453ea5055b8191 -size 4448425 +oid sha256:7789fa5730a66069d43dacb834d66799481e1c5974cee6a402be5dcd7bee5fdf +size 4478847 diff --git a/lib/search/indexes/github-docs-3.2-es-records.json.br b/lib/search/indexes/github-docs-3.2-es-records.json.br index a5f4c50e16..4af6de33eb 100644 --- a/lib/search/indexes/github-docs-3.2-es-records.json.br +++ b/lib/search/indexes/github-docs-3.2-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b85e6d1e3f6591ec8708e525a0f62c500260acb6e1906aced51297ac37ec79af -size 747973 +oid sha256:9c1df3d276c7e3af2f2598e1631376f0692fc3d9acefdba7f5afc46d975753bb +size 746123 diff --git a/lib/search/indexes/github-docs-3.2-es.json.br b/lib/search/indexes/github-docs-3.2-es.json.br index 5f280eeb17..7a4b741047 100644 --- a/lib/search/indexes/github-docs-3.2-es.json.br +++ b/lib/search/indexes/github-docs-3.2-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:564fdb7a62b6cb20e64a5ba9c6bb4e2dd690e38f221fbc59cc45a8b44ae16a98 -size 3112748 +oid sha256:e5c96370e5a124ca2e005ae03cbfe50ff231e784ba08ad7f959a7cab21ec5803 +size 3142521 diff --git a/lib/search/indexes/github-docs-3.2-ja-records.json.br b/lib/search/indexes/github-docs-3.2-ja-records.json.br index 5bd98e655f..440289daf0 100644 --- a/lib/search/indexes/github-docs-3.2-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.2-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:819fadd54113bd3f70542a81b54f665ae6e513fd6fa82899dcd904b137c52ff8 -size 831240 +oid sha256:622a8f897c4f0aca676bab7468aacbf6cbc12c627b7898f23bb8d4fc011318ac +size 827874 diff --git a/lib/search/indexes/github-docs-3.2-ja.json.br b/lib/search/indexes/github-docs-3.2-ja.json.br index 69e65fe9f3..d8aa8964e8 100644 --- a/lib/search/indexes/github-docs-3.2-ja.json.br +++ b/lib/search/indexes/github-docs-3.2-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae313e76b1da345047ffa298da3f3c7d11342881db3052c1697a14fd42aaadd9 -size 4401860 +oid sha256:8ba3897c4eb7b9882222d2db39de2184e5efc2557cc7cf994b3437f92b18a41a +size 4409958 diff --git a/lib/search/indexes/github-docs-3.2-pt-records.json.br b/lib/search/indexes/github-docs-3.2-pt-records.json.br index 6fb447c782..627b5c4777 100644 --- a/lib/search/indexes/github-docs-3.2-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.2-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72eac71d67a6ff5359786615d2dae7160f98182443a3a91b8c3c3a3ce55cb8e3 -size 734933 +oid sha256:eb35d825b812c23d569ae8d21dc490b805d1493a489323b95d1bdfa73209e9dd +size 732723 diff --git a/lib/search/indexes/github-docs-3.2-pt.json.br b/lib/search/indexes/github-docs-3.2-pt.json.br index fcc66f16ed..49c9576be7 100644 --- a/lib/search/indexes/github-docs-3.2-pt.json.br +++ b/lib/search/indexes/github-docs-3.2-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddc65ee34586e385840ac280444237a83458752d19606e2e05cabf1dbbdde453 -size 3092683 +oid sha256:84776107eefcba41d68db37bf99040c573bc170fb81955fb30a46ef67f28e7fa +size 3120912 diff --git a/lib/search/indexes/github-docs-3.3-cn-records.json.br b/lib/search/indexes/github-docs-3.3-cn-records.json.br index fed8c400ba..7b64e4d1d0 100644 --- a/lib/search/indexes/github-docs-3.3-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.3-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:668b89ba00ce5a8f19f48444c649dc6e5e3307b4b7f8df311672132554dae0d2 -size 813690 +oid sha256:9a1a4d215db506ff72ef54e9b105fb02df64d4e63a57ae73da2cbfd70f1fbd8b +size 810545 diff --git a/lib/search/indexes/github-docs-3.3-cn.json.br b/lib/search/indexes/github-docs-3.3-cn.json.br index a036691783..6b0d296bed 100644 --- a/lib/search/indexes/github-docs-3.3-cn.json.br +++ b/lib/search/indexes/github-docs-3.3-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6345fe4fa65ede957aae0d4e81e7ed349b3fbf8a7f33743626c3f40351fed120 -size 1650464 +oid sha256:0e6a20e4ea5227a79691b0f73db72af401d42276012b818684f840a989784d94 +size 1685425 diff --git a/lib/search/indexes/github-docs-3.3-en-records.json.br b/lib/search/indexes/github-docs-3.3-en-records.json.br index 93a74d57ab..3ed7720bcb 100644 --- a/lib/search/indexes/github-docs-3.3-en-records.json.br +++ b/lib/search/indexes/github-docs-3.3-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:79f54c15b818a1ced7c97c3d943c2080d3f64097d7f812362ee6d0606ce4d501 -size 1150596 +oid sha256:125107e1e60bb1cd23806b8f349f64a3563ff7ae4de733489fb7b13414b2bf2c +size 1135321 diff --git a/lib/search/indexes/github-docs-3.3-en.json.br b/lib/search/indexes/github-docs-3.3-en.json.br index 793694dde6..882245d785 100644 --- a/lib/search/indexes/github-docs-3.3-en.json.br +++ b/lib/search/indexes/github-docs-3.3-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53bb91ac395460cf82db45687603d799867cc9db29a8a5728c17004902f71e81 -size 4549805 +oid sha256:c86c0b042a5fde7af934fc8297bbd81342c74432dc99392c8c58ded12fdc2120 +size 4582821 diff --git a/lib/search/indexes/github-docs-3.3-es-records.json.br b/lib/search/indexes/github-docs-3.3-es-records.json.br index 8e54a6481c..2152a32b6a 100644 --- a/lib/search/indexes/github-docs-3.3-es-records.json.br +++ b/lib/search/indexes/github-docs-3.3-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9f9adb98bfbd2723891740a99209a4f605185df7e92de97d75047c99478a7ee7 -size 770007 +oid sha256:3aae190eb2aa194f8774dba4cc18820f111f0bad2f90ded56788deca270fbee3 +size 767737 diff --git a/lib/search/indexes/github-docs-3.3-es.json.br b/lib/search/indexes/github-docs-3.3-es.json.br index 64d5f67cdc..55a793ee33 100644 --- a/lib/search/indexes/github-docs-3.3-es.json.br +++ b/lib/search/indexes/github-docs-3.3-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b0ded521a606e8aa71653552788a71504291ec55137ccc1d209695d10011623 -size 3207386 +oid sha256:dcf06d47fe6636f2331f3d3b61f0c1bcdde9a90a4376dc63cf1a048891999e2d +size 3237286 diff --git a/lib/search/indexes/github-docs-3.3-ja-records.json.br b/lib/search/indexes/github-docs-3.3-ja-records.json.br index cb7adaec0d..0dcd3b0be6 100644 --- a/lib/search/indexes/github-docs-3.3-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.3-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06e06a52ef5b4a952e1ec2980364fd76acd819868b15dc5defe8d7b286b9ded4 -size 855570 +oid sha256:d57ead981442e6bbe1cdde849653f253185be76520bd26a06567209795376854 +size 852049 diff --git a/lib/search/indexes/github-docs-3.3-ja.json.br b/lib/search/indexes/github-docs-3.3-ja.json.br index 11f048c237..71d0979b2b 100644 --- a/lib/search/indexes/github-docs-3.3-ja.json.br +++ b/lib/search/indexes/github-docs-3.3-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d5f239fe9af3345459fed3a350102ab785309e9d4e178807b8f5f582715602e -size 4531434 +oid sha256:c4cb807820d41bf8dab64a884cbb08283e4ae7d484f9d191667e96150518e94a +size 4542358 diff --git a/lib/search/indexes/github-docs-3.3-pt-records.json.br b/lib/search/indexes/github-docs-3.3-pt-records.json.br index dfad06bd93..18796b78bf 100644 --- a/lib/search/indexes/github-docs-3.3-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.3-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9a7592d3e1330012e48011c74f1049ca92a50753ae29067db1d646bb11c5786e -size 757062 +oid sha256:f6e3df5252a3c42a855791fdf293c1727b1367ca64d51d3e3b095fd4d2b898ce +size 754664 diff --git a/lib/search/indexes/github-docs-3.3-pt.json.br b/lib/search/indexes/github-docs-3.3-pt.json.br index af6532dbac..87663f73a8 100644 --- a/lib/search/indexes/github-docs-3.3-pt.json.br +++ b/lib/search/indexes/github-docs-3.3-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45309267c28d3313bfdd373eaec4c0992b36e67575a86bec7a224e970e63f183 -size 3186580 +oid sha256:16d035c3747768031dfed30ee9c8a45adacb895745eb7e99523cf0cf4ceae2a7 +size 3216823 diff --git a/lib/search/indexes/github-docs-3.4-cn-records.json.br b/lib/search/indexes/github-docs-3.4-cn-records.json.br index bd47a2eefc..e0319ad3da 100644 --- a/lib/search/indexes/github-docs-3.4-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.4-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72951a2eb5e0f9a68ba41d043394b5e515051491587b6c809b31f77633211bbb -size 816209 +oid sha256:82f1ab8939d5dd26cbcf8d8e8127685d7df040e34766c0f033dcfb2ed84b608a +size 813071 diff --git a/lib/search/indexes/github-docs-3.4-cn.json.br b/lib/search/indexes/github-docs-3.4-cn.json.br index 641a9497d5..c75c8a7edc 100644 --- a/lib/search/indexes/github-docs-3.4-cn.json.br +++ b/lib/search/indexes/github-docs-3.4-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6603d1b045aea0cac4037150c8765ce2cac99ffcf80b320f79abe560e1717547 -size 1664467 +oid sha256:37798c560348a57b9281d4485d57e49df40395c217e17139586b8ecddf5db120 +size 1699281 diff --git a/lib/search/indexes/github-docs-3.4-en-records.json.br b/lib/search/indexes/github-docs-3.4-en-records.json.br index 74d5b2f1c8..c45f5368a4 100644 --- a/lib/search/indexes/github-docs-3.4-en-records.json.br +++ b/lib/search/indexes/github-docs-3.4-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:004afb224f4e7485a3cad35982c240cf0b79d9c3b09af9195ee0aa3b537c70bd -size 1161825 +oid sha256:2c494b17ccad4a828b13b60fef8e2d2c65b561af145fc2f3daa803240f6bf763 +size 1146911 diff --git a/lib/search/indexes/github-docs-3.4-en.json.br b/lib/search/indexes/github-docs-3.4-en.json.br index dde549e90b..cbc079d0c5 100644 --- a/lib/search/indexes/github-docs-3.4-en.json.br +++ b/lib/search/indexes/github-docs-3.4-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:672ef25e3d361f05076812b1613456d3d20354508931ba457e7b9001c4a95397 -size 4610167 +oid sha256:97e6b7d79453f2623564b58e3bdf191a5df33c074a3fa9318ed06024b4a56a96 +size 4643132 diff --git a/lib/search/indexes/github-docs-3.4-es-records.json.br b/lib/search/indexes/github-docs-3.4-es-records.json.br index 74a60d1063..acfa501a5e 100644 --- a/lib/search/indexes/github-docs-3.4-es-records.json.br +++ b/lib/search/indexes/github-docs-3.4-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e06d3c95c302579fd776f9c3141944a2cbe5abd618bf275fb1f8403dd90a8fb -size 774341 +oid sha256:f2d1a80587e182370a76baaab88aa7e4e53f8c0fee254b51a2d75818d8667b81 +size 772282 diff --git a/lib/search/indexes/github-docs-3.4-es.json.br b/lib/search/indexes/github-docs-3.4-es.json.br index 5fec01bdda..19de55bcb1 100644 --- a/lib/search/indexes/github-docs-3.4-es.json.br +++ b/lib/search/indexes/github-docs-3.4-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d67b1f82f0235bfc342df036123bbef424b2d6c5fd6e47c2dd1a9a91c91b3f3d -size 3234937 +oid sha256:6b77ef7d174387505ae2b6de83dfd9c6b38899319ce87b445532fbb0600d8816 +size 3265028 diff --git a/lib/search/indexes/github-docs-3.4-ja-records.json.br b/lib/search/indexes/github-docs-3.4-ja-records.json.br index e607579fb8..d0c417cea4 100644 --- a/lib/search/indexes/github-docs-3.4-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.4-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c1a3bd6832a1861312f2aa15bb1478cfad927450610324eeab016e9491b58393 -size 857810 +oid sha256:f8018b669d0fc4ca288f42e8793e795f8442a97436e87eaf9e30b5acb8a3dddb +size 854092 diff --git a/lib/search/indexes/github-docs-3.4-ja.json.br b/lib/search/indexes/github-docs-3.4-ja.json.br index 3a78b39110..efefd11c99 100644 --- a/lib/search/indexes/github-docs-3.4-ja.json.br +++ b/lib/search/indexes/github-docs-3.4-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:60451511245d61f0ea8290bce20741540a8b3b5e57b193a9625d772cf6a34148 -size 4557130 +oid sha256:86278d13de69f0c4e59e0279bab7a93251791a41a55ef53378ab1294c4f44cc8 +size 4568763 diff --git a/lib/search/indexes/github-docs-3.4-pt-records.json.br b/lib/search/indexes/github-docs-3.4-pt-records.json.br index ed5693fb31..4aa658c3ad 100644 --- a/lib/search/indexes/github-docs-3.4-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.4-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00ded954851686d674505a9863a202c5bba647b9b4739b4e44664df01ede80da -size 761318 +oid sha256:d054eecda396c7f332cf7f9e4fe29e426e632d447f8f030c143699e0e1b5d5dd +size 759001 diff --git a/lib/search/indexes/github-docs-3.4-pt.json.br b/lib/search/indexes/github-docs-3.4-pt.json.br index 230ab8d4f2..b1db99f9aa 100644 --- a/lib/search/indexes/github-docs-3.4-pt.json.br +++ b/lib/search/indexes/github-docs-3.4-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0444d828fe7cdf6888a86ed6ad4727fce83a53a42af415c325646fca119cc21e -size 3213807 +oid sha256:30bc27bf2b1d4d6aecb06bc29a3caf68989902ab144e99d0b6278b9fc0732dc0 +size 3243686 diff --git a/lib/search/indexes/github-docs-3.5-cn-records.json.br b/lib/search/indexes/github-docs-3.5-cn-records.json.br index 5a02293e2d..568b435cb7 100644 --- a/lib/search/indexes/github-docs-3.5-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.5-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da7f1513caf8ee29d6250b00ef44f91abfe50daee6cb10c5a39da785c249aa8f -size 846670 +oid sha256:3200128e89914ac5839d08ce3320acb356b22494f293c002decc7b05ca21697d +size 843382 diff --git a/lib/search/indexes/github-docs-3.5-cn.json.br b/lib/search/indexes/github-docs-3.5-cn.json.br index 84acb9bef7..3c0798b2e6 100644 --- a/lib/search/indexes/github-docs-3.5-cn.json.br +++ b/lib/search/indexes/github-docs-3.5-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:04819e1bf874a81059eaad955ee67881ebdd0a0c800148ffb1cc2a034c00f72b -size 1727198 +oid sha256:6391e168f9f3b253592e9212c5f682b1185ebe6d357d347c2ef8419b5afeb79e +size 1764903 diff --git a/lib/search/indexes/github-docs-3.5-en-records.json.br b/lib/search/indexes/github-docs-3.5-en-records.json.br index 64bac53012..2114fe2554 100644 --- a/lib/search/indexes/github-docs-3.5-en-records.json.br +++ b/lib/search/indexes/github-docs-3.5-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:424b7d0780f0ab9e53cbd50e36fbbedceac786eb5aa75ca4ad0a55f06099b6af -size 1203375 +oid sha256:39506d96b315a4f5baf2f7c593fa389d1d6cc733544deb60f5c7f3b43d21ebf2 +size 1187033 diff --git a/lib/search/indexes/github-docs-3.5-en.json.br b/lib/search/indexes/github-docs-3.5-en.json.br index a8de0a13f1..ef9fe70996 100644 --- a/lib/search/indexes/github-docs-3.5-en.json.br +++ b/lib/search/indexes/github-docs-3.5-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e17c88f499dec0b2bc90124bee78b998a721b82abbf25c2041ed25462e02b0e0 -size 4773184 +oid sha256:5f2b8dcda46be7ac2312f7fdf54e66cb3d4ea6bd3ab1a5b24f6592317876e8b3 +size 4809942 diff --git a/lib/search/indexes/github-docs-3.5-es-records.json.br b/lib/search/indexes/github-docs-3.5-es-records.json.br index 1818c8803c..48b7af5048 100644 --- a/lib/search/indexes/github-docs-3.5-es-records.json.br +++ b/lib/search/indexes/github-docs-3.5-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:156b697c0c49fed7bbdc53f7382be4e990279e5b979e140a02287896c249ffa3 -size 799424 +oid sha256:f151d81357d6763dd75927bd9103b9bf9a3f955a799a1e7205e05b3f89981ee0 +size 797215 diff --git a/lib/search/indexes/github-docs-3.5-es.json.br b/lib/search/indexes/github-docs-3.5-es.json.br index 4fe5d45557..ab0f55da50 100644 --- a/lib/search/indexes/github-docs-3.5-es.json.br +++ b/lib/search/indexes/github-docs-3.5-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d265e96c7d13f1b9fa26fff39217b6a60c445294f0006b0a900f850077bb1c30 -size 3347563 +oid sha256:687f3e4f1fa8531861e097027ec06fcc015999479d26528af7e1f14057f4abb5 +size 3379783 diff --git a/lib/search/indexes/github-docs-3.5-ja-records.json.br b/lib/search/indexes/github-docs-3.5-ja-records.json.br index 506a04b855..e43b1adc9b 100644 --- a/lib/search/indexes/github-docs-3.5-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.5-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf310287fb64a4d3444561c191c9992420cf8f5022a5055261ad1b55be9a7178 -size 887961 +oid sha256:a95fb41a71d410159960c52cb1f40b1e34a3a79d6da6d4d3265de7203dc1fba3 +size 884301 diff --git a/lib/search/indexes/github-docs-3.5-ja.json.br b/lib/search/indexes/github-docs-3.5-ja.json.br index 8d6cb3db7a..b5ba8435e9 100644 --- a/lib/search/indexes/github-docs-3.5-ja.json.br +++ b/lib/search/indexes/github-docs-3.5-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9030ae368d2225311cfaf98d880bfdd90ad33c9ebd900cf5e8caac05813daa59 -size 4727733 +oid sha256:17fa68c49ad52af79f3dae4817178ca2b55ccdd9087005034f092b980c3e03e2 +size 4738701 diff --git a/lib/search/indexes/github-docs-3.5-pt-records.json.br b/lib/search/indexes/github-docs-3.5-pt-records.json.br index 4d6543c60a..73e160c368 100644 --- a/lib/search/indexes/github-docs-3.5-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.5-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:52d7b8cb3afdd76e844c5c88e5c0d7d6aa1f60a3e6b19f5d0507af9a4af6182f -size 786313 +oid sha256:8e7430213368cf17013ce3c3c16d9f0a417c8220924b6a9fe521ac9fd4b0e7d6 +size 783970 diff --git a/lib/search/indexes/github-docs-3.5-pt.json.br b/lib/search/indexes/github-docs-3.5-pt.json.br index edc9ab61c7..b216253e05 100644 --- a/lib/search/indexes/github-docs-3.5-pt.json.br +++ b/lib/search/indexes/github-docs-3.5-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8dad76ac19fa4d3d1cf68a1950662ed188d6d239c4fb8fb4a9dffc96959695a4 -size 3329946 +oid sha256:b511ec3d8b829ea994fcb2b446eab37900c04435c7371e10d7e19e70f91f9335 +size 3359310 diff --git a/lib/search/indexes/github-docs-3.6-cn-records.json.br b/lib/search/indexes/github-docs-3.6-cn-records.json.br index 2d2b905e29..7e862cbaae 100644 --- a/lib/search/indexes/github-docs-3.6-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.6-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1e30d6ed32f7e1ceb2085e1a2f8ec08ae19ebcebb9dd885795f9bafd6ef36912 -size 869767 +oid sha256:3dd69fcc279e4e3bb8cdc8304655546c8754f7b83b6bfc20977634e07b1f09ae +size 866724 diff --git a/lib/search/indexes/github-docs-3.6-cn.json.br b/lib/search/indexes/github-docs-3.6-cn.json.br index 05bfa9e7d0..3125d5fc60 100644 --- a/lib/search/indexes/github-docs-3.6-cn.json.br +++ b/lib/search/indexes/github-docs-3.6-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e77968de86678bec23c56ef30c504004d576e01801752fdd326d8f16366e9806 -size 1770304 +oid sha256:96345e899a6bfb6be04f78b1cbc6d11b6a2e57e4440291f439303a279f51ec4e +size 1808420 diff --git a/lib/search/indexes/github-docs-3.6-en-records.json.br b/lib/search/indexes/github-docs-3.6-en-records.json.br index 84b3c587ea..54f5420433 100644 --- a/lib/search/indexes/github-docs-3.6-en-records.json.br +++ b/lib/search/indexes/github-docs-3.6-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0496e1b3f1cdba380d9eca2e15a54a54a83b8a301c7cffc7d0ea779bd6ce798 -size 1238474 +oid sha256:03724e59d8f1ef414f97583424dea6505a9c65cb1a37b3af410cd4aa42d8540c +size 1221916 diff --git a/lib/search/indexes/github-docs-3.6-en.json.br b/lib/search/indexes/github-docs-3.6-en.json.br index e9eda70ac1..7e6098b7b0 100644 --- a/lib/search/indexes/github-docs-3.6-en.json.br +++ b/lib/search/indexes/github-docs-3.6-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a12e3fd11592da45ecf08ee04e271e99978e74d6051388142e7f738ecc13b63e -size 4908651 +oid sha256:b5c47a807549dda866b5a0952dc4af1fefdaa5107bec19ba541b8df0c9770027 +size 4948429 diff --git a/lib/search/indexes/github-docs-3.6-es-records.json.br b/lib/search/indexes/github-docs-3.6-es-records.json.br index cfb93dd570..a2c63c359b 100644 --- a/lib/search/indexes/github-docs-3.6-es-records.json.br +++ b/lib/search/indexes/github-docs-3.6-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:309dc5732b8b04a9e21887c7d09befceca851b45762ad877465b4e6ba914a7a4 -size 823202 +oid sha256:23e5c6916666549fd803da30c5776b65810f0f4da52a4720769d30c9202d1bbc +size 821089 diff --git a/lib/search/indexes/github-docs-3.6-es.json.br b/lib/search/indexes/github-docs-3.6-es.json.br index 189b4aa7cc..706f4bb3e0 100644 --- a/lib/search/indexes/github-docs-3.6-es.json.br +++ b/lib/search/indexes/github-docs-3.6-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af1b7017b25141afb55c86fa4b824be5d3c544aad15b8ca2eb3e4a8a33731ea3 -size 3453501 +oid sha256:9f321a2502dd20cb4f936f853fe7de755e83fe7c57a061424e76d438a67e7b47 +size 3486514 diff --git a/lib/search/indexes/github-docs-3.6-ja-records.json.br b/lib/search/indexes/github-docs-3.6-ja-records.json.br index e02db56db2..7920eef1e4 100644 --- a/lib/search/indexes/github-docs-3.6-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.6-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29d4429ba3c8665db1495f2b278b559d78e340f7d80841b8c0a27400f566c3ca -size 913745 +oid sha256:f83c4960a0f0a632e4613f1bdddebe6269bea38b42f75b07a408be85f41d2fb0 +size 910017 diff --git a/lib/search/indexes/github-docs-3.6-ja.json.br b/lib/search/indexes/github-docs-3.6-ja.json.br index ab566f5031..93c93f50eb 100644 --- a/lib/search/indexes/github-docs-3.6-ja.json.br +++ b/lib/search/indexes/github-docs-3.6-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95929764a966d73159925f2bbd92218e3cd8aa322e0fd5ff7396612c53ff1db6 -size 4870173 +oid sha256:f64328274e090e5c2ba135c90d641966dcba4032518785ae1ccadd45bc9e9a74 +size 4880026 diff --git a/lib/search/indexes/github-docs-3.6-pt-records.json.br b/lib/search/indexes/github-docs-3.6-pt-records.json.br index f78684c48a..92056c05f7 100644 --- a/lib/search/indexes/github-docs-3.6-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.6-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e9e034c27f17f1db32b66cc419869c7721cfec0542d40eefc5f5b5d9bfb593b1 -size 809192 +oid sha256:65ad519c447364e85ff764defab9cb37770c8c91164c3cb3cdc9361d83d0fb8a +size 806840 diff --git a/lib/search/indexes/github-docs-3.6-pt.json.br b/lib/search/indexes/github-docs-3.6-pt.json.br index 41839acb49..7951604489 100644 --- a/lib/search/indexes/github-docs-3.6-pt.json.br +++ b/lib/search/indexes/github-docs-3.6-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7fb553a90ccc6b8b08c0ab987fad178c4604bbc9c3643fc09a93d6706d98148 -size 3430757 +oid sha256:e48731fc378b19877fd823de5654f9d91106523c1986c16d87ff37bf6ed19cc3 +size 3461096 diff --git a/lib/search/indexes/github-docs-dotcom-cn-records.json.br b/lib/search/indexes/github-docs-dotcom-cn-records.json.br index 06d54b144a..f7a3413057 100644 --- a/lib/search/indexes/github-docs-dotcom-cn-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0dc040bfa61156dab14a1ed86cc86f91599a8249f5469743c5a3962cff2f2b61 -size 1022135 +oid sha256:e660a243cbf7ca2203a35b0acf51cdf2deeb0d1a8cf5352a6a0b20f2fdc9c192 +size 1018177 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 9110fa1149..de09db995b 100644 --- a/lib/search/indexes/github-docs-dotcom-cn.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a17d59e71509a90fdeceada31abcb56b20f1e44e3135a7567742c646b9d66824 -size 1861169 +oid sha256:7bc528515d846fdb30f41d0a5f91f8821de0b83866b0ae553b86dacc8c602427 +size 1904769 diff --git a/lib/search/indexes/github-docs-dotcom-en-records.json.br b/lib/search/indexes/github-docs-dotcom-en-records.json.br index a219d3ee83..f76154a1a6 100644 --- a/lib/search/indexes/github-docs-dotcom-en-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19e70467098f7db3e38a48a0b33a31a77c7997e890a2d4138d2ee9dc36964aed -size 1490464 +oid sha256:80c26d581f24780340235a1c532b83d82af45b9ef34d11e82e8d82acaa328eee +size 1465981 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 1cb0262856..4c054ce006 100644 --- a/lib/search/indexes/github-docs-dotcom-en.json.br +++ b/lib/search/indexes/github-docs-dotcom-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8aa98b9e8aca092c05eace91e7c8de1df77c9c9758ffb1e13bafb3e309775b7f -size 5645661 +oid sha256:723f334dd52fc5b14922e14b71045141987dae3ba254631a2527ae02abe11f4a +size 5689551 diff --git a/lib/search/indexes/github-docs-dotcom-es-records.json.br b/lib/search/indexes/github-docs-dotcom-es-records.json.br index 7276514c04..4d4b1ebb5d 100644 --- a/lib/search/indexes/github-docs-dotcom-es-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8b28d738c6eec6063a3f16708c50781864967628df477baf34e2c0b4689e1fd2 -size 953825 +oid sha256:0167aba0dc9bd64d9dd935f544956d7f5b312d43e6b2d1b1233a4200581ebcde +size 950871 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index d9ba69eda5..3135a98330 100644 --- a/lib/search/indexes/github-docs-dotcom-es.json.br +++ b/lib/search/indexes/github-docs-dotcom-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce767e32a21d439bc7370b5c71fc016ccb47e191a765cc2f08d6f7a25a5f8596 -size 3915429 +oid sha256:6a004a7c0fb616d999cd6ca7346ca72cad16d5966ea711594b44b8d873dd8026 +size 3949177 diff --git a/lib/search/indexes/github-docs-dotcom-ja-records.json.br b/lib/search/indexes/github-docs-dotcom-ja-records.json.br index 145db48662..f5b81ed639 100644 --- a/lib/search/indexes/github-docs-dotcom-ja-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7be13af713b26e65007c841838e3f7304f4ac89516eda5aab35659b9c8c2757 -size 1069496 +oid sha256:f1eea385ef741178474b7607665f7ac04ce2d400a0df30aa3170b06bfc265f7e +size 1064768 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index dfbceaace1..4cd8bee903 100644 --- a/lib/search/indexes/github-docs-dotcom-ja.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35be73c6ceab12fdf28e6a0e79b35aa447a7ea78267e557248c6667350ed7ecb -size 5543220 +oid sha256:22f4d54634e00cf73c322b9c95d33b64f69e7871f0c6a9509c3ed2daf3ab2aa3 +size 5551974 diff --git a/lib/search/indexes/github-docs-dotcom-pt-records.json.br b/lib/search/indexes/github-docs-dotcom-pt-records.json.br index db1f6727b0..d144bbea8f 100644 --- a/lib/search/indexes/github-docs-dotcom-pt-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea19d8fac4fa12d5c91acd2214b1419e490ee0b4b7f61ed199ea8104c63bbc9f -size 936768 +oid sha256:5675abd03152c37ad5674c39f73e09dbbc36ff13650ea971b485d0b575fabfe1 +size 933866 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index ceb8cb4521..9b17bfac78 100644 --- a/lib/search/indexes/github-docs-dotcom-pt.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:88dcb13ef6005f5ba0af778bea14fb9cced3c659f73c87bbfc67fe88e5052e1e -size 3872053 +oid sha256:2e14caac7c2e279a3cb383346ae2476fea4741bc29b96cc971f8f15c769a8843 +size 3906420 diff --git a/lib/search/indexes/github-docs-ghae-cn-records.json.br b/lib/search/indexes/github-docs-ghae-cn-records.json.br index 5ab37c84bd..52190dbe5f 100644 --- a/lib/search/indexes/github-docs-ghae-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghae-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5d320c9393f37dc8b04a3310f2d05239a7350de0664de84c73ca7c9981fa5763 -size 653323 +oid sha256:4841bf9df42a552b7ce6317501c21e1f825356d9868008d2c4df10adf34b0197 +size 650462 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 80823043da..5416af90b0 100644 --- a/lib/search/indexes/github-docs-ghae-cn.json.br +++ b/lib/search/indexes/github-docs-ghae-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:463aa5958331a8656c65d20650590477505e5d21b435e5259c89ba47c3087344 -size 1342394 +oid sha256:19c0275dabc40c645261bb7e9f4387bf60afed131d0fd2e17a53d7e261e441f2 +size 1376971 diff --git a/lib/search/indexes/github-docs-ghae-en-records.json.br b/lib/search/indexes/github-docs-ghae-en-records.json.br index 50b3e2f796..836e8c4552 100644 --- a/lib/search/indexes/github-docs-ghae-en-records.json.br +++ b/lib/search/indexes/github-docs-ghae-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:43b8b6c97a22e110cdc0cde8ac56dc119fa4f670998157668df8d5e7f63082b5 -size 958475 +oid sha256:523d1e5d6b782f885f5f53da55cc796232dcb3d9083b8d15b8e3c05040bee7e8 +size 943508 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 8c72fed0f6..85dc81cc39 100644 --- a/lib/search/indexes/github-docs-ghae-en.json.br +++ b/lib/search/indexes/github-docs-ghae-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e3efaf0cb0b857afa1e2773f645333e550a7ab0439d6b4384fb76de9635e64ce -size 3744871 +oid sha256:78ade404fd68e77399e7b468ada01239b6136a64a3a906a7be079895ed64958d +size 3774973 diff --git a/lib/search/indexes/github-docs-ghae-es-records.json.br b/lib/search/indexes/github-docs-ghae-es-records.json.br index b2e46014d7..87275c2d30 100644 --- a/lib/search/indexes/github-docs-ghae-es-records.json.br +++ b/lib/search/indexes/github-docs-ghae-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c3394d900d7c4645aceaa5da5cf650b9bbcfd3d285ae811386a7ac31c2f08587 -size 629146 +oid sha256:df827a4ebfb21153e06ae4db559ccb4b604050aab07a68b67d790d7a6ca759c8 +size 626914 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index c5459f5635..8a4e3c93e4 100644 --- a/lib/search/indexes/github-docs-ghae-es.json.br +++ b/lib/search/indexes/github-docs-ghae-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e100888b42c0daf81f5f1c4183b27f1684dbe6b607c1beef054c3bbdd7ff6da3 -size 2551033 +oid sha256:3433a73c408be364d05c249abcc5caaea24150d5e1249c06ffa5f4a3654562bf +size 2582551 diff --git a/lib/search/indexes/github-docs-ghae-ja-records.json.br b/lib/search/indexes/github-docs-ghae-ja-records.json.br index 435feb0088..a30e4e396e 100644 --- a/lib/search/indexes/github-docs-ghae-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghae-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:73fa273c55a4b58ebabc9b41dde834d69120620c92f7c44a44a0afc2dadc28b5 -size 686680 +oid sha256:d4c4ac8a030062ce902406f0f079469976c54dc91aa86dfa365088d1fe2b809b +size 683258 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 2877849400..5a244b6429 100644 --- a/lib/search/indexes/github-docs-ghae-ja.json.br +++ b/lib/search/indexes/github-docs-ghae-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b07470e287c8b6809984d7b8608603d73bf9dbb5e96193b2b59b22ac8be1850f -size 3562903 +oid sha256:b539996a396387f1293073d9d2c0cece58ecca7fd319c729bad06994840fa594 +size 3572509 diff --git a/lib/search/indexes/github-docs-ghae-pt-records.json.br b/lib/search/indexes/github-docs-ghae-pt-records.json.br index b48f3cf51e..1b4325516b 100644 --- a/lib/search/indexes/github-docs-ghae-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghae-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f7864a94711408556bb89056cd3bcc8b6568c7991dbd009b395623f8633b519 -size 618492 +oid sha256:6f9c187e985a4655a40195ac49bc20ecea8bef3d018bd1113cd72756143ddcef +size 616372 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index bbc46e7e85..13013d0b9f 100644 --- a/lib/search/indexes/github-docs-ghae-pt.json.br +++ b/lib/search/indexes/github-docs-ghae-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5573de11ddff7fd79f0898ce1c0f1acb982c881479be83138a0d70e34f710bb -size 2538729 +oid sha256:edf18d1d54d920622cd3001ea094df1a17ceaadd58b8365113670ea952035f63 +size 2568451 diff --git a/lib/search/indexes/github-docs-ghec-cn-records.json.br b/lib/search/indexes/github-docs-ghec-cn-records.json.br index e7b4c6b2be..7f6b7be436 100644 --- a/lib/search/indexes/github-docs-ghec-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghec-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c4af62ea86b9750f70d944cff9d7e084bb496b5ceb44ce7c95093b79127f6368 -size 1000029 +oid sha256:da0f8c9e39ac71007377768eb06e5cf4ed0e7174a7f2b5d9e6e840918df6346d +size 996243 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 28a2ff4949..edce66de2b 100644 --- a/lib/search/indexes/github-docs-ghec-cn.json.br +++ b/lib/search/indexes/github-docs-ghec-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:168e2aadaf980162cb02582d1e5349545a063e5d573cd9a1fd885061d82bdd00 -size 2019368 +oid sha256:d57620b1ca9dbfb375d1c86d32b4275047b00e2a33796a71ba0e5ccdaafff6ff +size 2062513 diff --git a/lib/search/indexes/github-docs-ghec-en-records.json.br b/lib/search/indexes/github-docs-ghec-en-records.json.br index 329dc93b20..c73370d1da 100644 --- a/lib/search/indexes/github-docs-ghec-en-records.json.br +++ b/lib/search/indexes/github-docs-ghec-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c01161c988a3911f2ea21a78937fd05193cf6e5b87bfe7b2c309d40b4b885748 -size 1430363 +oid sha256:14c6ba446cf97171bdfb65687eaedfb62bbaac050e16890aa1f5422541a2b08a +size 1413022 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 595bea8102..5a4b35cd5d 100644 --- a/lib/search/indexes/github-docs-ghec-en.json.br +++ b/lib/search/indexes/github-docs-ghec-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:068d671a5716879e426f0d328e99da53636ed496709366ca24ea72ec2f625e14 -size 5720741 +oid sha256:f45fafeabd640c74eb488ef7839b6b4ea4aed1033df1fadee13c5a938472ba2e +size 5763746 diff --git a/lib/search/indexes/github-docs-ghec-es-records.json.br b/lib/search/indexes/github-docs-ghec-es-records.json.br index 7710a00c55..dc533bdc75 100644 --- a/lib/search/indexes/github-docs-ghec-es-records.json.br +++ b/lib/search/indexes/github-docs-ghec-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a972654a9b33a4fc56911bde256cced144c60f60ceab16967e81af775359c850 -size 959608 +oid sha256:e4d64761768ea10f7b3dc1ec1f7545298ba109300a14ad2a4684d538b9d216e7 +size 956759 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index beffdb1c16..be156b769b 100644 --- a/lib/search/indexes/github-docs-ghec-es.json.br +++ b/lib/search/indexes/github-docs-ghec-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:737dd035a956b620c7a25f5423dd04346cf13a3ed4e29d093dca6bea3c2f1f89 -size 4091068 +oid sha256:f392b77df0957009cdee6fc430d66efa292ac3984e11c9567bd812ee521c2498 +size 4126438 diff --git a/lib/search/indexes/github-docs-ghec-ja-records.json.br b/lib/search/indexes/github-docs-ghec-ja-records.json.br index 6fd98cf29e..1fd5457757 100644 --- a/lib/search/indexes/github-docs-ghec-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghec-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:262b93880a497d7d18abe8149268abb06a0121aa5d418b06c5371c18416c93b9 -size 1057127 +oid sha256:4911b4fe1f51f259564f91d8c5d06d93b39d85c0d1681b5fec40b97727a9cf80 +size 1052952 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 6e353dd8aa..0afc507b46 100644 --- a/lib/search/indexes/github-docs-ghec-ja.json.br +++ b/lib/search/indexes/github-docs-ghec-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42b26184a36c082eae57e5105972739828df7c6554c728aa6eb3d400c89d0df1 -size 5683449 +oid sha256:31f158b15645b8bf6425db0599a30e2c83fe0ad94ab598cb20e0fdde0d019a05 +size 5696065 diff --git a/lib/search/indexes/github-docs-ghec-pt-records.json.br b/lib/search/indexes/github-docs-ghec-pt-records.json.br index d8aaa0cdd4..b3b9e5ad9b 100644 --- a/lib/search/indexes/github-docs-ghec-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghec-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c4b2955724dc2aa0bb5717c4dcd7f1e2b85027c2fd1c38ca9204ad6594903a75 -size 941814 +oid sha256:0b32abcd6709d0e09bd796ff5a895cf84c9d298938568abd0856de8d4d076b4a +size 939165 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index 2e5f9a508d..bcc0dbd77a 100644 --- a/lib/search/indexes/github-docs-ghec-pt.json.br +++ b/lib/search/indexes/github-docs-ghec-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6ab63d44510ad7d86ba006e815802168b6759eaa51b0506e9aa352b4a9c8e787 -size 4036857 +oid sha256:20d5f38b5ccef0973b8bbb4225174306cf7e12de0a93ef15b6411493bf562e63 +size 4073839 diff --git a/middleware/api/es-search.js b/middleware/api/es-search.js index 68b101a06c..b31e31a5f2 100644 --- a/middleware/api/es-search.js +++ b/middleware/api/es-search.js @@ -30,6 +30,9 @@ export async function getSearchResults({ includeTopics, usePrefixSearch, }) { + if (topics && !Array.isArray(topics)) { + throw new Error("'topics' has to be an array") + } const t0 = new Date() const client = getClient() const from = size * (page - 1) @@ -47,8 +50,18 @@ export async function getSearchResults({ should: matchQueries, }, } - if (topics) { - throw new Error('Not implemented yet') + + const topicsFilter = (topics || []).map((topic) => { + return { + term: { + // Remember, 'topics' is a keyword field, meaning you need + // to filter by "Webhooks", not "webhooks" + topics: topic, + }, + } + }) + if (topicsFilter.length) { + matchQuery.bool.filter = topicsFilter } const highlight = getHighlightConfiguration(query) diff --git a/middleware/api/search.js b/middleware/api/search.js index 34bd1426cd..b4dcb4099e 100644 --- a/middleware/api/search.js +++ b/middleware/api/search.js @@ -69,8 +69,13 @@ router.get( '/legacy', catchMiddlewareError(async function legacySearch(req, res) { const { query, version, language, filters, limit: limit_ } = req.query + const topics = [] if (filters) { - throw new Error('not implemented yet') + if (Array.isArray(filters)) { + topics.push(...filters) + } else { + topics.push(filters) + } } const limit = Math.min(parseInt(limit_, 10) || 10, 100) if (!versions.has(version)) { @@ -104,6 +109,7 @@ router.get( // send the query 'google cl' they hope to find 'Google Cloud' // even though they didn't type that fully. usePrefixSearch: true, + topics, } try { const { hits: hits_, meta } = await timed(options) diff --git a/middleware/context.js b/middleware/context.js index c935660f2b..6cc53abb73 100644 --- a/middleware/context.js +++ b/middleware/context.js @@ -1,7 +1,7 @@ import languages from '../lib/languages.js' import enterpriseServerReleases from '../lib/enterprise-server-releases.js' import { allVersions } from '../lib/all-versions.js' -import { productMap, productGroups } from '../lib/all-products.js' +import { productMap, getProductGroups } from '../lib/all-products.js' import pathUtils from '../lib/path-utils.js' import productNames from '../lib/product-names.js' import warmServer from '../lib/warm-server.js' @@ -39,7 +39,7 @@ export default async function contextualize(req, res, next) { req.context.currentProduct = getProductStringFromPath(req.pagePath) req.context.currentCategory = getCategoryStringFromPath(req.pagePath) req.context.productMap = productMap - req.context.productGroups = productGroups + req.context.productGroups = getProductGroups(pageMap, req.language) req.context.activeProducts = activeProducts req.context.allVersions = allVersions req.context.currentPathWithoutLanguage = getPathWithoutLanguage(req.pagePath) diff --git a/middleware/handle-errors.js b/middleware/handle-errors.js index f923b7c431..62b6522058 100644 --- a/middleware/handle-errors.js +++ b/middleware/handle-errors.js @@ -23,6 +23,7 @@ async function logException(error, req) { if (process.env.NODE_ENV !== 'test' && shouldLogException(error)) { await FailBot.report(error, { path: req.path, + url: req.url, }) } } diff --git a/package-lock.json b/package-lock.json index e72f924ba3..fc54140cb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3481,6 +3481,201 @@ "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz", "integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==" }, + "node_modules/@next/swc-android-arm-eabi": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz", + "integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-android-arm64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz", + "integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz", + "integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz", + "integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-freebsd-x64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz", + "integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz", + "integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz", + "integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz", + "integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz", + "integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz", + "integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz", + "integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz", + "integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz", + "integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -22928,6 +23123,84 @@ "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz", "integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==" }, + "@next/swc-android-arm-eabi": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz", + "integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==", + "optional": true + }, + "@next/swc-android-arm64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz", + "integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==", + "optional": true + }, + "@next/swc-darwin-arm64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz", + "integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz", + "integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==", + "optional": true + }, + "@next/swc-freebsd-x64": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz", + "integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==", + "optional": true + }, + "@next/swc-linux-arm-gnueabihf": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz", + "integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz", + "integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz", + "integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz", + "integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz", + "integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz", + "integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz", + "integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "12.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz", + "integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==", + "optional": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", diff --git a/script/search/index-elasticsearch.js b/script/search/index-elasticsearch.js index 25154d22e5..d31a17c1f4 100755 --- a/script/search/index-elasticsearch.js +++ b/script/search/index-elasticsearch.js @@ -276,7 +276,7 @@ async function indexVersion( headings: { type: 'text', analyzer: 'text_analyzer', norms: false }, headings_explicit: { type: 'text', analyzer: 'text_analyzer_explicit', norms: false }, breadcrumbs: { type: 'text' }, - topics: { type: 'text' }, + topics: { type: 'keyword' }, popularity: { type: 'float' }, }, }, diff --git a/tests/content/api-search.js b/tests/content/api-search.js index ab5ad6044e..b26358c689 100644 --- a/tests/content/api-search.js +++ b/tests/content/api-search.js @@ -183,4 +183,53 @@ describeIfElasticsearchURL('search middleware', () => { const foundURLS = results.map((result) => result.url) expect(foundURLS.includes('/en/foo')).toBeTruthy() }) + + test('basic legacy search with single filter', async () => { + const sp = new URLSearchParams() + sp.set('query', 'foo') + sp.set('language', 'en') + sp.set('version', 'dotcom') + sp.set('filters', 'Fixture') + const res = await get('/api/search/legacy?' + sp) + expect(res.statusCode).toBe(200) + const results = JSON.parse(res.text) + expect(Array.isArray(results)).toBeTruthy() + const foundURLS = results.map((result) => result.url) + expect(foundURLS.includes('/en/foo')).toBeTruthy() + expect(foundURLS.includes('/en/bar')).toBeTruthy() + const foundTopics = results.map((result) => result.topics) + expect(foundTopics.every((topics) => topics.includes('Fixture'))).toBeTruthy() + }) + + test('basic legacy search with multiple filters', async () => { + const sp = new URLSearchParams() + sp.set('query', 'foo') + sp.set('language', 'en') + sp.set('version', 'dotcom') + sp.set('filters', 'Fixture') + sp.append('filters', 'Get started') + const res = await get('/api/search/legacy?' + sp) + expect(res.statusCode).toBe(200) + const results = JSON.parse(res.text) + expect(Array.isArray(results)).toBeTruthy() + const foundURLS = results.map((result) => result.url) + expect(foundURLS.includes('/en/bar')).toBeTruthy() + const foundTopics = results.map((result) => result.topics) + expect( + foundTopics.every((topics) => topics.includes('Fixture') && topics.includes('Get started')) + ).toBeTruthy() + }) + + test('basic legacy search with unknown filters', async () => { + const sp = new URLSearchParams() + sp.set('query', 'foo') + sp.set('language', 'en') + sp.set('version', 'dotcom') + sp.set('filters', 'Never heard of') + const res = await get('/api/search/legacy?' + sp) + expect(res.statusCode).toBe(200) + const results = JSON.parse(res.text) + expect(Array.isArray(results)).toBeTruthy() + expect(results.length).toBe(0) + }) }) diff --git a/tests/content/fixtures/search-indexes/github-docs-dotcom-en-records.json b/tests/content/fixtures/search-indexes/github-docs-dotcom-en-records.json index c8af9abffb..073270c306 100644 --- a/tests/content/fixtures/search-indexes/github-docs-dotcom-en-records.json +++ b/tests/content/fixtures/search-indexes/github-docs-dotcom-en-records.json @@ -5,7 +5,7 @@ "title": "Foo", "headings": "", "content": "This is a fixture with the silly foo word.", - "topics": ["test", "fixture"], + "topics": ["Test", "Fixture"], "popularity": 0.5 }, "/en/bar": { @@ -14,7 +14,7 @@ "title": "Bar", "headings": "", "content": "Can't have foo if you don't also have bar.", - "topics": ["test", "fixture", "additional"], + "topics": ["Test", "Fixture", "Get started"], "popularity": 0.6 } } diff --git a/tests/content/fixtures/search-indexes/github-docs-ghae-en-records.json b/tests/content/fixtures/search-indexes/github-docs-ghae-en-records.json index 695e7260c2..2ed8a7fc85 100644 --- a/tests/content/fixtures/search-indexes/github-docs-ghae-en-records.json +++ b/tests/content/fixtures/search-indexes/github-docs-ghae-en-records.json @@ -5,6 +5,6 @@ "title": "Foo", "headings": "", "content": "This is a fixture with the silly foo word. Exclusively for GHAE.", - "topics": ["test", "fixture"] + "topics": ["Test", "Fixture"] } } diff --git a/tests/rendering/server.js b/tests/rendering/server.js index 66f71f47d5..0f09e56839 100644 --- a/tests/rendering/server.js +++ b/tests/rendering/server.js @@ -6,6 +6,7 @@ import { loadPages } from '../../lib/page-data.js' import CspParse from 'csp-parse' import { productMap } from '../../lib/all-products.js' import { SURROGATE_ENUMS } from '../../middleware/set-fastly-surrogate-key.js' +import { getPathWithoutVersion } from '../../lib/path-utils.js' import { describe, jest } from '@jest/globals' const AZURE_STORAGE_URL = 'githubdocs.azureedge.net' @@ -79,21 +80,24 @@ describe('server', () => { test('renders the Enterprise homepages with links to expected products in both the sidebar and page body', async () => { const enterpriseProducts = [ - `/en/enterprise-server@${enterpriseServerReleases.latest}`, - '/en/enterprise-cloud@latest', + `enterprise-server@${enterpriseServerReleases.latest}`, + 'enterprise-cloud@latest', ] - enterpriseProducts.forEach(async (ep) => { - const $ = await getDOM(ep) + for (const ep of enterpriseProducts) { + const $ = await getDOM(`/en/${ep}`) const sidebarItems = $('[data-testid=sidebar] li a').get() const sidebarTitles = sidebarItems.map((el) => $(el).text().trim()) const sidebarHrefs = sidebarItems.map((el) => $(el).attr('href')) - const productItems = $('[data-testid=product] div a').get() - const productTitles = productItems.map((el) => $(el).text().trim()) - const productHrefs = productItems.map((el) => $(el).attr('href')) + const productItems = activeProducts.filter( + (prod) => prod.external || prod.versions.includes(ep) + ) + const productTitles = productItems.map((prod) => prod.name) + const productHrefs = productItems.map((prod) => + prod.external ? prod.href : `/en/${ep}${getPathWithoutVersion(prod.href)}` + ) const titlesInProductsButNotSidebar = lodash.difference(productTitles, sidebarTitles) - const hrefsInProductsButNotSidebar = lodash.difference(productHrefs, sidebarHrefs) expect( @@ -104,7 +108,7 @@ describe('server', () => { hrefsInProductsButNotSidebar.length, `Found hrefs missing from sidebar: ${hrefsInProductsButNotSidebar.join(', ')}` ).toBe(0) - }) + } }) test('sets Content Security Policy (CSP) headers', async () => { diff --git a/translations/es-ES/content/actions/using-workflows/workflow-commands-for-github-actions.md b/translations/es-ES/content/actions/using-workflows/workflow-commands-for-github-actions.md index 9f1c39088d..5a6de2d67d 100644 --- a/translations/es-ES/content/actions/using-workflows/workflow-commands-for-github-actions.md +++ b/translations/es-ES/content/actions/using-workflows/workflow-commands-for-github-actions.md @@ -1,7 +1,7 @@ --- -title: Comandos de flujo de trabajo para Acciones de GitHub +title: Workflow commands for GitHub Actions shortTitle: Workflow commands -intro: Puedes usar comandos de flujo de trabajo cuando ejecutas comandos de Shell en un flujo de trabajo o en el código de una acción. +intro: You can use workflow commands when running shell commands in a workflow or in an action's code. defaultTool: bash redirect_from: - /articles/development-tools-for-github-actions @@ -16,22 +16,18 @@ versions: ghes: '*' ghae: '*' ghec: '*' -ms.openlocfilehash: 80f10d807cf7f8978173225c17ed4dc0eedeeb22 -ms.sourcegitcommit: 478f2931167988096ae6478a257f492ecaa11794 -ms.translationtype: HT -ms.contentlocale: es-ES -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147770901' --- -{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %} -## Acerca de los comandos de flujo +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} -Las acciones pueden comunicarse con la máquina del ejecutor para establecer variables de entorno, valores de salida utilizados por otras acciones, agregar mensajes de depuración a los registros de salida y otras tareas. +## About workflow commands -La mayoría de los comandos de flujo de trabajo usan el comando `echo` en un formato específico, mientras que otros se pueden invocar escribiendo en un archivo. Para más información, vea "[Archivos de entorno](#environment-files)". +Actions can communicate with the runner machine to set environment variables, output values used by other actions, add debug messages to the output logs, and other tasks. -### Ejemplo +Most workflow commands use the `echo` command in a specific format, while others are invoked by writing to a file. For more information, see "[Environment files](#environment-files)." + +### Example {% bash %} @@ -51,27 +47,62 @@ Write-Output "::workflow-command parameter1={data},parameter2={data}::{command v {% note %} -**Nota:** Los nombres de parámetros y comandos de flujo de trabajo no distinguen mayúsculas de minúsculas. +**Note:** Workflow command and parameter names are not case-sensitive. {% endnote %} {% warning %} -**Advertencia:** Si utiliza el símbolo del sistema, omita los caracteres de comillas dobles (`"`) al usar comandos de flujo de trabajo. +**Warning:** If you are using Command Prompt, omit double quote characters (`"`) when using workflow commands. {% endwarning %} -## Utilizar comandos de flujo de trabajo para acceder a las funciones de toolkit +## Using workflow commands to access toolkit functions -En [actions/toolkit](https://github.com/actions/toolkit) se incluye una serie de funciones que se pueden ejecutar como comandos de flujo de trabajo. Use la sintaxis `::` para ejecutar los comandos de flujo de trabajo dentro del archivo YAML; estos comandos se envían al ejecutor por medio de `stdout`. Por ejemplo, en vez de utilizar código para configurar una salida, como se muestra aquí: +The [actions/toolkit](https://github.com/actions/toolkit) includes a number of functions that can be executed as workflow commands. Use the `::` syntax to run the workflow commands within your YAML file; these commands are then sent to the runner over `stdout`. + +{%- ifversion actions-save-state-set-output-envs %} +For example, instead of using code to create an error annotation, as below: + +```javascript{:copy} +core.error('Missing semicolon', {file: 'app.js', startLine: 1}) +``` + +### Example: Creating an annotation for an error + +You can use the `error` command in your workflow to create the same error annotation: + +{% bash %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: echo "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: Write-Output "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endpowershell %} +{%- else %} +For example, instead of using code to set an output, as below: ```javascript{:copy} core.setOutput('SELECTED_COLOR', 'green'); ``` -### Ejemplo: Configurar un valor +### Example: Setting a value -Puede usar el comando `set-output` en el flujo de trabajo para establecer el mismo valor: +You can use the `set-output` command in your workflow to set the same value: {% bash %} @@ -101,32 +132,44 @@ Puede usar el comando `set-output` en el flujo de trabajo para establecer el mis {% endpowershell %} -La siguiente tabla muestra qué funciones del toolkit se encuentran disponibles dentro de un flujo de trabajo: +{% endif %} -| Funcion del Toolkit | Comando equivalente del flujo de trabajo | +The following table shows which toolkit functions are available within a workflow: + +| Toolkit function | Equivalent workflow command | | ----------------- | ------------- | -| `core.addPath` | Accesible mediante el archivo de entorno `GITHUB_PATH` | +| `core.addPath` | Accessible using environment file `GITHUB_PATH` | | `core.debug` | `debug` |{% ifversion fpt or ghes > 3.2 or ghae or ghec %} | `core.notice` | `notice` |{% endif %} | `core.error` | `error` | | `core.endGroup` | `endgroup` | -| `core.exportVariable` | Accesible mediante el archivo de entorno `GITHUB_ENV` | -| `core.getInput` | Accesible mediante la variable de entorno `INPUT_{NAME}` | -| `core.getState` | Accesible mediante la variable de entorno `STATE_{NAME}` | -| `core.isDebug` | Accesible mediante la variable de entorno `RUNNER_DEBUG` | -{%- ifversion actions-job-summaries %} | `core.summary` | Accesible mediante la variable de entorno `GITHUB_STEP_SUMMARY` | {%- endif %} | `core.saveState` | `save-state` | | `core.setCommandEcho` | `echo` | | `core.setFailed` | Se usa como acceso directo para `::error` y `exit 1` | | `core.setOutput` | `set-output` | | `core.setSecret` | `add-mask` | | `core.startGroup` | `group` | | `core.warning` | `warning` | +| `core.exportVariable` | Accessible using environment file `GITHUB_ENV` | +| `core.getInput` | Accessible using environment variable `INPUT_{NAME}` | +| `core.getState` | Accessible using environment variable `STATE_{NAME}` | +| `core.isDebug` | Accessible using environment variable `RUNNER_DEBUG` | +{%- ifversion actions-job-summaries %} +| `core.summary` | Accessible using environment variable `GITHUB_STEP_SUMMARY` | +{%- endif %} +| `core.saveState` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_STATE`{% else %}`save-state`{% endif %} | +| `core.setCommandEcho` | `echo` | +| `core.setFailed` | Used as a shortcut for `::error` and `exit 1` | +| `core.setOutput` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_OUTPUT`{% else %}`set-output`{% endif %} | +| `core.setSecret` | `add-mask` | +| `core.startGroup` | `group` | +| `core.warning` | `warning` | -## Configurar un parámetro de salida +{% ifversion actions-save-state-set-output-envs %}{% else %} +## Setting an output parameter -Establece un parámetro de salida de la acción. +Sets an action's output parameter. ```{:copy} ::set-output name={name}::{value} ``` -Opcionalmente, también puedes declarar parámetros de salida en el archivo de metadatos de una acción. Para más información, vea "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions)". +Optionally, you can also declare output parameters in an action's metadata file. For more information, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions)." -### Ejemplo;: Configurar un parámetro de salida +### Example: Setting an output parameter {% bash %} @@ -143,16 +186,17 @@ Write-Output "::set-output name=action_fruit::strawberry" ``` {% endpowershell %} +{% endif %} -## Agregar un mensaje de depuración +## Setting a debug message -Imprime un mensaje de depuración en el registro. Debe crear un secreto denominado `ACTIONS_STEP_DEBUG` con el valor `true` para ver los mensajes de depuración establecidos por este comando en el registro. Para más información, vea "[Habilitación del registro de depuración](/actions/managing-workflow-runs/enabling-debug-logging)". +Prints a debug message to the log. You must create a secret named `ACTIONS_STEP_DEBUG` with the value `true` to see the debug messages set by this command in the log. For more information, see "[Enabling debug logging](/actions/managing-workflow-runs/enabling-debug-logging)." ```{:copy} ::debug::{message} ``` -### Ejemplo: Configurar un mensaje de depuración +### Example: Setting a debug message {% bash %} @@ -172,9 +216,9 @@ Write-Output "::debug::Set the Octocat variable" {% ifversion fpt or ghes > 3.2 or ghae or ghec %} -## Configurar un mensaje de aviso +## Setting a notice message -Crea un mensaje de aviso e imprime el mensaje en la bitácora. {% data reusables.actions.message-annotation-explanation %} +Creates a notice message and prints the message to the log. {% data reusables.actions.message-annotation-explanation %} ```{:copy} ::notice file={name},line={line},endLine={endLine},title={title}::{message} @@ -182,7 +226,7 @@ Crea un mensaje de aviso e imprime el mensaje en la bitácora. {% data reusables {% data reusables.actions.message-parameters %} -### Ejemplo: configurar un mensaje de notificación +### Example: Setting a notice message {% bash %} @@ -198,11 +242,12 @@ echo "::notice file=app.js,line=1,col=5,endColumn=7::Missing semicolon" Write-Output "::notice file=app.js,line=1,col=5,endColumn=7::Missing semicolon" ``` -{% endpowershell %} {% endif %} +{% endpowershell %} +{% endif %} -## Configurar un mensaje de advertencia +## Setting a warning message -Crea un mensaje de advertencia e imprime el mensaje en el registro. {% data reusables.actions.message-annotation-explanation %} +Creates a warning message and prints the message to the log. {% data reusables.actions.message-annotation-explanation %} ```{:copy} ::warning file={name},line={line},endLine={endLine},title={title}::{message} @@ -210,7 +255,7 @@ Crea un mensaje de advertencia e imprime el mensaje en el registro. {% data reus {% data reusables.actions.message-parameters %} -### Ejemplo: Configurar un mensaje de advertencia +### Example: Setting a warning message {% bash %} @@ -227,9 +272,9 @@ Write-Output "::warning file=app.js,line=1,col=5,endColumn=7::Missing semicolon" {% endpowershell %} -## Configurar un mensaje de error +## Setting an error message -Crea un mensaje de error e imprime el mensaje en el registro. {% data reusables.actions.message-annotation-explanation %} +Creates an error message and prints the message to the log. {% data reusables.actions.message-annotation-explanation %} ```{:copy} ::error file={name},line={line},endLine={endLine},title={title}::{message} @@ -237,7 +282,7 @@ Crea un mensaje de error e imprime el mensaje en el registro. {% data reusables. {% data reusables.actions.message-parameters %} -### Ejemplo: Configurar un mensaje de error +### Example: Setting an error message {% bash %} @@ -255,16 +300,16 @@ Write-Output "::error file=app.js,line=1,col=5,endColumn=7::Missing semicolon" {% endpowershell %} -## Agrupar líneas de las bitácoras +## Grouping log lines -Crea un grupo expansible en la bitácora. Para crear un grupo, use el comando `group` y especifique `title`. Todo lo que imprima en el registro entre los comandos `group` y `endgroup` se anida dentro de una entrada expandible en el registro. +Creates an expandable group in the log. To create a group, use the `group` command and specify a `title`. Anything you print to the log between the `group` and `endgroup` commands is nested inside an expandable entry in the log. ```{:copy} ::group::{title} ::endgroup:: ``` -### Ejemplo: Agrupar líneas de bitácoras +### Example: Grouping log lines {% bash %} @@ -298,19 +343,19 @@ jobs: {% endpowershell %} -![Grupo plegable en la bitácora de una ejecución de flujo de trabajo](/assets/images/actions-log-group.png) +![Foldable group in workflow run log](/assets/images/actions-log-group.png) -## Enmascarar un valor en el registro +## Masking a value in log ```{:copy} ::add-mask::{value} ``` -El enmascaramiento de un valor impide que una cadena o variable se imprima en el registro. Cada palabra enmascarada separada por un espacio en blanco se reemplaza con el carácter `*`. Puede usar una variable de entorno o una cadena para el valor `value` de la máscara. Al enmascarar un valor, se trata como un secreto y se oculta en el ejecutor. Por ejemplo, después de enmascarar un valor, no podrá establecerlo como salida. +Masking a value prevents a string or variable from being printed in the log. Each masked word separated by whitespace is replaced with the `*` character. You can use an environment variable or string for the mask's `value`. When you mask a value, it is treated as a secret and will be redacted on the runner. For example, after you mask a value, you won't be able to set that value as an output. -### Ejemplo: Enmascarar una secuencia +### Example: Masking a string -Al imprimir `"Mona The Octocat"` en el registro, verá `"***"`. +When you print `"Mona The Octocat"` in the log, you'll see `"***"`. {% bash %} @@ -330,13 +375,13 @@ Write-Output "::add-mask::Mona The Octocat" {% warning %} -**Advertencia:** asegúrate de registrar el secreto con "add-mask" antes de generarlo en los registros de compilación o usarlo en cualquier otro comando de flujo de trabajo. +**Warning:** Make sure you register the secret with 'add-mask' before outputting it in the build logs or using it in any other workflow commands. {% endwarning %} -### Ejemplo: Enmascarar una variable de ambiente +### Example: Masking an environment variable -Al imprimir la variable `MY_NAME` o el valor `"Mona The Octocat"` en el registro, verá `"***"` en lugar de `"Mona The Octocat"`. +When you print the variable `MY_NAME` or the value `"Mona The Octocat"` in the log, you'll see `"***"` instead of `"Mona The Octocat"`. {% bash %} @@ -368,19 +413,19 @@ jobs: {% endpowershell %} -## Detener e iniciar comandos de flujo de trabajo +## Stopping and starting workflow commands -Deja de procesar cualquier comando de flujo de trabajo. Este comando especial te permite registrar lo que sea sin ejecutar accidentalmente un comando de flujo de trabajo. Por ejemplo, podrías dejar de registrar para producir un script completo que tenga comentarios. +Stops processing any workflow commands. This special command allows you to log anything without accidentally running a workflow command. For example, you could stop logging to output an entire script that has comments. ```{:copy} ::stop-commands::{endtoken} ``` -Para detener el procesamiento de los comandos de flujo de trabajo, pase un token único a `stop-commands`. Para resumir los comandos de flujo de trabajo de procesamiento, pasa el mismo token que utilizaste para detener los comandos de flujo de trabajo. +To stop the processing of workflow commands, pass a unique token to `stop-commands`. To resume processing workflow commands, pass the same token that you used to stop workflow commands. {% warning %} -**Advertencia:** Asegúrese de que el token que usa se genera aleatoriamente y es único para cada ejecución. +**Warning:** Make sure the token you're using is randomly generated and unique for each run. {% endwarning %} @@ -388,7 +433,7 @@ Para detener el procesamiento de los comandos de flujo de trabajo, pase un token ::{endtoken}:: ``` -### Ejemplo: Parar e iniciar comandos de flujos de trabajo +### Example: Stopping and starting workflow commands {% bash %} @@ -434,22 +479,22 @@ jobs: {% endpowershell %} -## Hacer eco en las salidas de comando +## Echoing command outputs -Habilita o inhabilita el hacer eco en los comandos de los flujos de trabajo. Por ejemplo, si usa el comando `set-output` en un flujo de trabajo, establece un parámetro de salida pero el registro de la ejecución de flujo de trabajo no muestra el propio comando. Si habilita el eco de comandos, el registro muestra el comando, como `::set-output name={name}::{value}`. +Enables or disables echoing of workflow commands. For example, if you use the `set-output` command in a workflow, it sets an output parameter but the workflow run's log does not show the command itself. If you enable command echoing, then the log shows the command, such as `::set-output name={name}::{value}`. ```{:copy} ::echo::on ::echo::off ``` -El eco de comando se encuentra inhabilitado predeterminadamente. Sin embargo, los comandos de flujo de trabajo hacen eco si existen errores para procesarlos. +Command echoing is disabled by default. However, a workflow command is echoed if there are any errors processing the command. -Los comandos `add-mask`, `debug`, `warning` y `error` no admiten el eco, porque sus salidas ya se han reproducido en el registro. +The `add-mask`, `debug`, `warning`, and `error` commands do not support echoing because their outputs are already echoed to the log. -También puede habilitar el eco de comandos globalmente si activa el registro de depuración de pasos mediante el secreto `ACTIONS_STEP_DEBUG`. Para más información, vea "[Habilitación del registro de depuración](/actions/managing-workflow-runs/enabling-debug-logging)". Por el contrario, el comando de flujo de trabajo `echo` permite habilitar el eco de comandos en un nivel más granular, en vez de habilitarlo para cada flujo de trabajo en un repositorio. +You can also enable command echoing globally by turning on step debug logging using the `ACTIONS_STEP_DEBUG` secret. For more information, see "[Enabling debug logging](/actions/managing-workflow-runs/enabling-debug-logging)". In contrast, the `echo` workflow command lets you enable command echoing at a more granular level, rather than enabling it for every workflow in a repository. -### Ejemplo: Alternar el eco de comandos +### Example: Toggling command echoing {% bash %} @@ -487,44 +532,58 @@ jobs: {% endpowershell %} -El ejemplo anterior imprime las siguientes líneas en la bitácora: +The example above prints the following lines to the log: ```{:copy} ::set-output name=action_echo::enabled ::echo::off ``` -Solo los segundos comandos de flujo de trabajo `set-output` y `echo` se incluyen en el registro, porque el eco de comandos solo se ha habilitado al ejecutarlos. Aunque no siempre hace eco, el parámetro de salida se configura en todos los casos. +Only the second `set-output` and `echo` workflow commands are included in the log because command echoing was only enabled when they were run. Even though it is not always echoed, the output parameter is set in all cases. -## Enviar valores a las acciones pre y post +## Sending values to the pre and post actions -Puede usar el comando `save-state` para crear variables de entorno a fin de compartirlas con las acciones `pre:` o `post:` del flujo de trabajo. Por ejemplo, puede crear un archivo con la acción `pre:`, pasar la ubicación del archivo a la acción `main:` y, después, usar la acción `post:` para eliminar el archivo. Como alternativa, podría crear un archivo con la acción `main:`, pasar la ubicación del archivo a la acción `post:` y también usar la acción `post:` para eliminar el archivo. +{% ifversion actions-save-state-set-output-envs %}You can create environment variables for sharing with your workflow's `pre:` or `post:` actions by writing to the file located at `GITHUB_STATE`{% else %}You can use the `save-state` command to create environment variables for sharing with your workflow's `pre:` or `post:` actions{% endif %}. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. -Si tiene varias acciones `pre:` o `post:`, solo puede acceder al valor guardado en la acción donde se ha usado `save-state`. Para más información sobre la acción `post:`, vea "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)". +If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where {% ifversion actions-save-state-set-output-envs %}it was written to `GITHUB_STATE`{% else %}`save-state` was used{% endif %}. For more information on the `post:` action, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." -El comando `save-state` solo se puede ejecutar dentro de una acción y no está disponible para los archivos YAML. El valor guardado se almacena como un valor de entorno con el prefijo `STATE_`. +{% ifversion actions-save-state-set-output-envs %}The `GITHUB_STATE` file is only available within an action{% else %}The `save-state` command can only be run within an action, and is not available to YAML files{% endif %}. The saved value is stored as an environment value with the `STATE_` prefix. -En este ejemplo se usa JavaScript para ejecutar el comando `save-state`. La variable de entorno resultante se denomina `STATE_processID` con el valor de `12345`: +{% ifversion actions-save-state-set-output-envs %} +This example uses JavaScript to write to the `GITHUB_STATE` file. The resulting environment variable is named `STATE_processID` with the value of `12345`: + +```javascript{:copy} +import * as fs from 'fs' +import * as os from 'os' + +fs.appendFileSync(process.env.GITHUB_STATE, `processID=12345${os.EOL}`, { + encoding: 'utf8' +}) +``` + +{% else %} +This example uses JavaScript to run the `save-state` command. The resulting environment variable is named `STATE_processID` with the value of `12345`: ```javascript{:copy} console.log('::save-state name=processID::12345') ``` +{% endif %} -Después, la variable `STATE_processID` está disponible exclusivamente para el script de limpieza que se ejecuta en la acción `main`. Este ejemplo se ejecuta en `main` y usa JavaScript para mostrar el valor asignado a la variable de entorno `STATE_processID`: +The `STATE_processID` variable is then exclusively available to the cleanup script running under the `main` action. This example runs in `main` and uses JavaScript to display the value assigned to the `STATE_processID` environment variable: ```javascript{:copy} console.log("The running PID from the main action is: " + process.env.STATE_processID); ``` -## Archivos de ambiente +## Environment files -Durante la ejecución de un flujo de trabajo, el ejecutor genera archivos temporales que pueden utilizarse para llevar a cabo ciertas acciones. La ruta a estos archivos se expone a través de variables de ambiente. Necesitarás utilizar codificación UTF-8 cuando escribas en estos archivos para garantizar el procesamiento adecuado de los comandos. Se pueden escribir varios comandos en el mismo archivo, separados por líneas nuevas. +During the execution of a workflow, the runner generates temporary files that can be used to perform certain actions. The path to these files are exposed via environment variables. You will need to use UTF-8 encoding when writing to these files to ensure proper processing of the commands. Multiple commands can be written to the same file, separated by newlines. {% powershell %} {% note %} -**Nota:** En las versiones 5.1 y posteriores de PowerShell (`shell: powershell`) no se usa UTF-8 de forma predeterminada, por lo que debe especificar la codificación UTF-8. Por ejemplo: +**Note:** PowerShell versions 5.1 and below (`shell: powershell`) do not use UTF-8 by default, so you must specify the UTF-8 encoding. For example: ```yaml{:copy} jobs: @@ -536,7 +595,7 @@ jobs: "mypath" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append ``` -En las versiones 6 y superiores de PowerShell Core (`shell: pwsh`) se usa UTF-8 de forma predeterminada. Por ejemplo: +PowerShell Core versions 6 and higher (`shell: pwsh`) use UTF-8 by default. For example: ```yaml{:copy} jobs: @@ -552,7 +611,7 @@ jobs: {% endpowershell %} -## Configuración de una variable de entorno +## Setting an environment variable {% bash %} @@ -564,13 +623,13 @@ echo "{environment_variable_name}={value}" >> $GITHUB_ENV {% powershell %} -- Utilizar PowerShell versión 6 y superior: +- Using PowerShell version 6 and higher: ```pwsh{:copy} "{environment_variable_name}={value}" >> $env:GITHUB_ENV ``` -- Utilizar PowerShell versión 5.1 e inferior: +- Using PowerShell version 5.1 and below: ```powershell{:copy} "{environment_variable_name}={value}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append @@ -578,9 +637,9 @@ echo "{environment_variable_name}={value}" >> $GITHUB_ENV {% endpowershell %} -Puede hacer que una variable de entorno esté disponible en cualquier paso posterior de un trabajo de un flujo de trabajo si define o actualiza la variable de entorno, y lo escribe en el archivo de entorno `GITHUB_ENV`. El paso que crea o actualiza la variable de ambiente no tiene acceso al valor nuevo, pero todos los pasos subsecuentes en un job tendrán acceso. Los nombres de las variables de ambiente distinguen entre mayúsculas y minúsculas y puedes incluir signos de puntuación. Para más información, vea "[Variables de entorno](/actions/learn-github-actions/environment-variables)". +You can make an environment variable available to any subsequent steps in a workflow job by defining or updating the environment variable and writing this to the `GITHUB_ENV` environment file. The step that creates or updates the environment variable does not have access to the new value, but all subsequent steps in a job will have access. The names of environment variables are case-sensitive, and you can include punctuation. For more information, see "[Environment variables](/actions/learn-github-actions/environment-variables)." -### Ejemplo +### Example {% bash %} @@ -618,9 +677,9 @@ steps: {% endpowershell %} -### Secuencias de línea múltiple +### Multiline strings -Para las secuencias de lìnea mùltiple, puedes utilizar un delimitador con la siguiente sintaxis. +For multiline strings, you may use a delimiter with the following syntax. ```{:copy} {name}<<{delimiter} @@ -630,13 +689,13 @@ Para las secuencias de lìnea mùltiple, puedes utilizar un delimitador con la s {% warning %} -**Advertencia:** Asegúrate de que el delimitador que usas se genera aleatoriamente y es único para cada ejecución. Para más información, consulta "[Descripción del riesgo de las inyecciones de scripts](/actions/security-guides/security-hardening-for-github-actions#understanding-the-risk-of-script-injections)". +**Warning:** Make sure the delimiter you're using is randomly generated and unique for each run. For more information, see "[Understanding the risk of script injections](/actions/security-guides/security-hardening-for-github-actions#understanding-the-risk-of-script-injections)". {% endwarning %} -#### Ejemplo +#### Example -En este ejemplo se usa `EOF` como delimitador y se establece la variable de entorno `JSON_RESPONSE` en el valor de la respuesta `curl`. +This example uses `EOF` as a delimiter, and sets the `JSON_RESPONSE` environment variable to the value of the `curl` response. {% bash %} @@ -667,9 +726,65 @@ steps: {% endpowershell %} +{% ifversion actions-save-state-set-output-envs %} +## Setting an output parameter + +Sets a step's output parameter. Note that the step will need an `id` to be defined to later retrieve the output value. + +{% bash %} + +```bash{:copy} +echo "{name}={value}" >> $GITHUB_OUTPUT +``` +{% endbash %} + +{% powershell %} + +```pwsh{:copy} +"{name}=value" >> $env:GITHUB_OUTPUT +``` + +{% endpowershell %} + +### Example + +{% bash %} + +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +{% raw %} +```yaml{:copy} + - name: Set color + id: random-color-generator + run: echo "SELECTED_COLOR=green" >> $GITHUB_OUTPUT + - name: Get color + run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +```yaml{:copy} + - name: Set color + id: random-color-generator + run: | + "SELECTED_COLOR=green" >> $env:GITHUB_OUTPUT + - name: Get color + run: Write-Output "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endpowershell %} +{% endif %} + {% ifversion actions-job-summaries %} -## Adición de un resumen de trabajos +## Adding a job summary {% bash %} @@ -687,13 +802,13 @@ echo "{markdown content}" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -Puedes establecer Markdown personalizado para cada trabajo de modo que se muestre en la página de resumen de una ejecución de flujo de trabajo. Puedes usar resúmenes de trabajos para mostrar y agrupar contenido único, como resúmenes de resultados de pruebas, de modo que alguien que vea el resultado de una ejecución de flujo de trabajo no necesite ir a los registros para ver información importante relacionada con la ejecución, como errores. +You can set some custom Markdown for each job so that it will be displayed on the summary page of a workflow run. You can use job summaries to display and group unique content, such as test result summaries, so that someone viewing the result of a workflow run doesn't need to go into the logs to see important information related to the run, such as failures. -Los resúmenes de trabajos admiten [Markdown de tipo {% data variables.product.prodname_dotcom %}](https://github.github.com/gfm/) y puedes agregar el contenido de Markdown para un paso al archivo de entorno `GITHUB_STEP_SUMMARY`. `GITHUB_STEP_SUMMARY` es único para cada paso de un trabajo. Para obtener más información sobre el archivo por paso al que hace referencia `GITHUB_STEP_SUMMARY`, consulta "[Archivos de entorno](#environment-files)". +Job summaries support [{% data variables.product.prodname_dotcom %} flavored Markdown](https://github.github.com/gfm/), and you can add your Markdown content for a step to the `GITHUB_STEP_SUMMARY` environment file. `GITHUB_STEP_SUMMARY` is unique for each step in a job. For more information about the per-step file that `GITHUB_STEP_SUMMARY` references, see "[Environment files](#environment-files)." -Cuando un trabajo finaliza, los resúmenes de todos los pasos de un trabajo se agrupan en un único resumen de trabajo y se muestran en la página resumen de ejecución del flujo de trabajo. Si varios trabajos generan resúmenes, estos se ordenan según la hora de finalización del trabajo. +When a job finishes, the summaries for all steps in a job are grouped together into a single job summary and are shown on the workflow run summary page. If multiple jobs generate summaries, the job summaries are ordered by job completion time. -### Ejemplo +### Example {% bash %} @@ -711,13 +826,13 @@ echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -![Ejemplo de resumen de Markdown](/assets/images/actions-job-summary-simple-example.png) +![Markdown summary example](/assets/images/actions-job-summary-simple-example.png) -### Contenido de Markdown multilínea +### Multiline Markdown content -En el caso de contenido de Markdown multilínea, puedes usar `>>` para anexar continuamente contenido al paso actual. Con cada operación de anexión, se agrega automáticamente un carácter de nueva línea. +For multiline Markdown content, you can use `>>` to continuously append content for the current step. With every append operation, a newline character is automatically added. -#### Ejemplo +#### Example {% bash %} @@ -747,11 +862,11 @@ En el caso de contenido de Markdown multilínea, puedes usar `>>` para anexar co {% endpowershell %} -### Sobrescritura de resúmenes de trabajos +### Overwriting job summaries -Para borrar todo el contenido del paso actual, puedes usar `>` para sobrescribir cualquier contenido agregado anteriormente. +To clear all content for the current step, you can use `>` to overwrite any previously added content. -#### Ejemplo +#### Example {% bash %} @@ -775,11 +890,11 @@ Para borrar todo el contenido del paso actual, puedes usar `>` para sobrescribir {% endpowershell %} -### Eliminación de resúmenes de trabajos +### Removing job summaries -Para quitar completamente un resumen del paso actual, se puede eliminar el archivo al que hace referencia `GITHUB_STEP_SUMMARY`. +To completely remove a summary for the current step, the file that `GITHUB_STEP_SUMMARY` references can be deleted. -#### Ejemplo +#### Example {% bash %} @@ -803,17 +918,17 @@ Para quitar completamente un resumen del paso actual, se puede eliminar el archi {% endpowershell %} -Una vez que se ha completado un paso, se cargan los resúmenes de trabajo y los pasos posteriores no pueden modificar el contenido de Markdown cargado anteriormente. Los resúmenes enmascaran automáticamente los secretos que podrían haberse agregado de forma accidental. Si un resumen de trabajo contiene información confidencial que se debe eliminar, puedes eliminar toda la ejecución del flujo de trabajo para quitar todos sus resúmenes de trabajo. Para obtener más información, consulta "[Eliminación de una ejecución de flujo de trabajo](/actions/managing-workflow-runs/deleting-a-workflow-run)". +After a step has completed, job summaries are uploaded and subsequent steps cannot modify previously uploaded Markdown content. Summaries automatically mask any secrets that might have been added accidentally. If a job summary contains sensitive information that must be deleted, you can delete the entire workflow run to remove all its job summaries. For more information see "[Deleting a workflow run](/actions/managing-workflow-runs/deleting-a-workflow-run)." -### Aislamiento y límites de pasos +### Step isolation and limits -Los resúmenes de trabajo están aislados entre los pasos y cada paso está restringido a un tamaño máximo de 1 MiB. Se aplica aislamiento entre los pasos para que el Markdown que podría tener un formato incorrecto en un paso no pueda interrumpir la representación de Markdown para los pasos posteriores. Si se agrega más de 1 MiB de contenido a un paso, se producirá un error en la carga del paso y se creará una anotación de error. Los errores de carga de resúmenes de trabajos no afectan al estado general de un paso o un trabajo. Se muestra un máximo de 20 resúmenes de trabajos de los pasos por trabajo. +Job summaries are isolated between steps and each step is restricted to a maximum size of 1MiB. Isolation is enforced between steps so that potentially malformed Markdown from a single step cannot break Markdown rendering for subsequent steps. If more than 1MiB of content is added for a step, then the upload for the step will fail and an error annotation will be created. Upload failures for job summaries do not affect the overall status of a step or a job. A maximum of 20 job summaries from steps are displayed per job. {% endif %} -## Agregar una ruta de sistema +## Adding a system path -Antepone un directorio a la variable del sistema `PATH` y hace que esté disponible automáticamente para todas las acciones posteriores en el trabajo actual; la acción que está actualmente en ejecución no puede acceder a la variable de ruta actualizada. A fin de ver las rutas definidas actualmente para el trabajo, puede usar `echo "$PATH"` en un paso o una acción. +Prepends a directory to the system `PATH` variable and automatically makes it available to all subsequent actions in the current job; the currently running action cannot access the updated path variable. To see the currently defined paths for your job, you can use `echo "$PATH"` in a step or an action. {% bash %} @@ -830,11 +945,11 @@ echo "{path}" >> $GITHUB_PATH {% endpowershell %} -### Ejemplo +### Example {% bash %} -En este ejemplo se muestra cómo agregar el directorio de usuario `$HOME/.local/bin` a `PATH`: +This example demonstrates how to add the user `$HOME/.local/bin` directory to `PATH`: ```bash{:copy} echo "$HOME/.local/bin" >> $GITHUB_PATH @@ -844,7 +959,7 @@ echo "$HOME/.local/bin" >> $GITHUB_PATH {% powershell %} -En este ejemplo se muestra cómo agregar el directorio de usuario `$env:HOMEPATH/.local/bin` a `PATH`: +This example demonstrates how to add the user `$env:HOMEPATH/.local/bin` directory to `PATH`: ```pwsh{:copy} "$env:HOMEPATH/.local/bin" >> $env:GITHUB_PATH diff --git a/translations/es-ES/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md b/translations/es-ES/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md index fa49ebc9f5..65a19be5d0 100644 --- a/translations/es-ES/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md +++ b/translations/es-ES/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md @@ -116,7 +116,7 @@ After you enable {% data variables.product.prodname_dependabot_alerts %} for you {% data reusables.enterprise_management_console.save-settings %} 1. Click **Visit your instance**. -1. Configure self-hosted runners to create the pull requests that will update dependencies. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." +1. Configure dedicated self-hosted runners to create the pull requests that will update dependencies. This is required because the workflows use a specific runner label. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.github-connect-tab %} 1. Under "{% data variables.product.prodname_dependabot %}", to the right of "Users can easily upgrade to non-vulnerable open source code dependencies", click **Enable**. diff --git a/translations/es-ES/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/translations/es-ES/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 92fa29e8a5..870e5fd520 100644 --- a/translations/es-ES/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/translations/es-ES/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -66,7 +66,8 @@ If you are a site administrator for {% data variables.product.product_location % ```shell > Generating public/private ALGORITHM key pair. ``` -3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. +When you're prompted to "Enter a file in which to save the key", you can press **Enter** to accept the default file location. Please note that if you created SSH keys previously, ssh-keygen may ask you to rewrite another key, in which case we recommend creating a custom-named SSH key. To do so, type the default file location and replace id_ssh_keyname with your custom key name. + {% mac %} diff --git a/translations/es-ES/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md b/translations/es-ES/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md index 4e5d9b7094..d2ad2bdba2 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md @@ -88,7 +88,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} -1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Committers." +1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for organization-level data](/assets/images/help/billing/download-organization-GHAS-usage-data.png) #### At the enterprise-level @@ -96,7 +96,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. Under "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Commiters." +1. Under "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for enterprise-level data](/assets/images/help/billing/download-enterprise-GHAS-usage-data.png) ### Downloading {% data variables.product.prodname_advanced_security %} license usage information through the REST API diff --git a/translations/es-ES/content/repositories/creating-and-managing-repositories/transferring-a-repository.md b/translations/es-ES/content/repositories/creating-and-managing-repositories/transferring-a-repository.md index d523105334..92900222ad 100644 --- a/translations/es-ES/content/repositories/creating-and-managing-repositories/transferring-a-repository.md +++ b/translations/es-ES/content/repositories/creating-and-managing-repositories/transferring-a-repository.md @@ -1,6 +1,6 @@ --- -title: Transferir un repositorio -intro: Puedes transferir repositorios a otros usuarios o cuentas de organización. +title: Transferring a repository +intro: You can transfer repositories to other users or organization accounts. redirect_from: - /articles/about-repository-transfers - /move-a-repo @@ -21,64 +21,62 @@ versions: ghec: '*' topics: - Repositories -ms.openlocfilehash: 129e0a379bef1d621d08283ad5a2c5ba33c7c696 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: es-ES -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147435272' --- -## Acerca de las transferencias de repositorios +## About repository transfers -Cuando transfieres un repositorio a un propietario nuevo, puede administrar de inmediato los contenidos, propuestas, solicitudes de extracción, lanzamientos, tableros de proyecto y parámetros del repositorio. +When you transfer a repository to a new owner, they can immediately administer the repository's contents, issues, pull requests, releases, {% data variables.product.prodname_projects_v1 %}, and settings. -Los prerrequisitos para las transferencias de repositorio son: -- Cuando transfieres un repositorio que te pertenece a otra cuenta personal, el dueño nuevo recibirá un correo electrónico de confirmación.{% ifversion fpt or ghec %} El correo electrónico de confirmación incluye instrucciones para aceptar la transferencia. Si el propietario nuevo no acepta la transferencia en el transcurso de un día, la invitación se vencerá.{% endif %} -- Para transferirle un repositorio que te pertenece a una organización, debes tener permiso para crear un repositorio en la organización de destino. -- La cuenta objetivo no debe tener un repositorio con el mismo nombre o una bifurcación en la misma red. -- El propietario original del repositorio se agrega como colaborador en el repositorio transferido. El resto de los colaboradores del repositorio transferido permanecerán intactos.{% ifversion ghes < 3.7 %} -- Los repositorios internos no pueden transferirse.{% endif %} -- Las bifurcaciones privadas no se pueden transferir. +Prerequisites for repository transfers: +- When you transfer a repository that you own to another personal account, the new owner will receive a confirmation email.{% ifversion fpt or ghec %} The confirmation email includes instructions for accepting the transfer. If the new owner doesn't accept the transfer within one day, the invitation will expire.{% endif %} +- To transfer a repository that you own to an organization, you must have permission to create a repository in the target organization. +- The target account must not have a repository with the same name, or a fork in the same network. +- The original owner of the repository is added as a collaborator on the transferred repository. Other collaborators to the transferred repository remain intact.{% ifversion ghes < 3.7 %} +- Internal repositories can't be transferred.{% endif %} +- Private forks can't be transferred. -{% ifversion fpt or ghec %}Si transfiere un repositorio privado a una cuenta de usuario u organización de {% data variables.product.prodname_free_user %}, el repositorio perderá acceso a características como ramas protegidas y {% data variables.product.prodname_pages %}. {% data reusables.gated-features.more-info %}{% endif %} +{% ifversion fpt or ghec %}If you transfer a private repository to a {% data variables.product.prodname_free_user %} user or organization account, the repository will lose access to features like protected branches and {% data variables.product.prodname_pages %}. {% data reusables.gated-features.more-info %}{% endif %} -### ¿Qué se transfiere con un repositorio? +### What's transferred with a repository? -Cuando transfieres un repositorio, también se transfieren sus propuestas, solicitudes de extracción, wiki, estrellas y observadores. Si el repositorio transferido contiene webhooks, servicios, secretos, o llaves de implementación, estos permanecerán asociados después de que se complete la transferencia. Se preserva la información de Git acerca de las confirmaciones, incluidas las contribuciones. Además: +When you transfer a repository, its issues, pull requests, wiki, stars, and watchers are also transferred. If the transferred repository contains webhooks, services, secrets, or deploy keys, they will remain associated after the transfer is complete. Git information about commits, including contributions, is preserved. In addition: -- Si el repositorio transferido es una bifurcación, sigue asociado con el repositorio ascendente. -- Si el repositorio transferido tiene alguna bifurcación, esas bifurcaciones seguirán asociadas al repositorio después de que se complete la transferencia. -- Si el repositorio transferido utiliza {% data variables.large_files.product_name_long %}, todos {% data variables.large_files.product_name_short %} los objetos se mueven automáticamente. Esta transferencia ocurre en segundo plano, así que, si tienes una cantidad grande de objetos de {% data variables.large_files.product_name_short %} o si los mismos objetos de {% data variables.large_files.product_name_short %} son grandes, podría tomar algo de tiempo para que ocurra la transferencia.{% ifversion fpt or ghec %} Antes de que transfieras un repositorio que utilice {% data variables.large_files.product_name_short %}, asegúrate de recibir una cuenta que tenga suficientes paquetes de datos para almacenar los objetos de {% data variables.large_files.product_name_short %} que vayas a migrar. Para obtener más información sobre cómo agregar almacenamiento para cuentas personales, consulta "[Actualización de {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)".{% endif %} -- Cuando se transfiere un repositorio entre dos cuentas personales, las asignaciones de incidencias se dejan intactas. Cuando transfieres un repositorio desde una cuenta personal a una organización, las incidencias asignadas a los miembros de la organización permanecen intactas y todos los demás asignatarios de incidencias se eliminan. Solo los propietarios de la organización están autorizados a crear asignaciones de propuestas nuevas. Cuando transfieres un repositorio desde una organización a una cuenta personal, solo se mantienen las incidencias asignadas al propietario del repositorio y se eliminan todos los demás asignatarios de incidencias. -- Si el repositorio transferido contiene un {% data variables.product.prodname_pages %} sitio, se redirigen los enlaces al repositorio de Git en la web y a través de la actividad de Git. Sin embargo, no redirigimos {% data variables.product.prodname_pages %} asociadas al repositorio. -- Todos los enlaces a la ubicación anterior del repositorio se redirigen de manera automática hacia la ubicación nueva. Al usar `git clone`, `git fetch` o `git push` en un repositorio transferido, estos comandos le redirigirán a la nueva ubicación o dirección URL del repositorio. Sin embargo, para evitar confusiones, es altamente recomendable actualizar cualquier clon local existente para que apunte a la nueva URL del repositorio. Puede hacerlo con `git remote` en la línea de comandos: +- If the transferred repository is a fork, then it remains associated with the upstream repository. +- If the transferred repository has any forks, then those forks will remain associated with the repository after the transfer is complete. +- If the transferred repository uses {% data variables.large_files.product_name_long %}, all {% data variables.large_files.product_name_short %} objects are automatically moved. This transfer occurs in the background, so if you have a large number of {% data variables.large_files.product_name_short %} objects or if the {% data variables.large_files.product_name_short %} objects themselves are large, it may take some time for the transfer to occur.{% ifversion fpt or ghec %} Before you transfer a repository that uses {% data variables.large_files.product_name_short %}, make sure the receiving account has enough data packs to store the {% data variables.large_files.product_name_short %} objects you'll be moving over. For more information on adding storage for personal accounts, see "[Upgrading {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)."{% endif %} +- When a repository is transferred between two personal accounts, issue assignments are left intact. When you transfer a repository from a personal account to an organization, issues assigned to members in the organization remain intact, and all other issue assignees are cleared. Only owners in the organization are allowed to create new issue assignments. When you transfer a repository from an organization to a personal account, only issues assigned to the repository's owner are kept, and all other issue assignees are removed. +- If the transferred repository contains a {% data variables.product.prodname_pages %} site, then links to the Git repository on the Web and through Git activity are redirected. However, we don't redirect {% data variables.product.prodname_pages %} associated with the repository. +- All links to the previous repository location are automatically redirected to the new location. When you use `git clone`, `git fetch`, or `git push` on a transferred repository, these commands will redirect to the new repository location or URL. However, to avoid confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using `git remote` on the command line: ```shell - $ git remote set-url origin new_url + $ git remote set-url origin NEW_URL ``` -- Cuando transfieres un repositorio desde una organización a una cuenta personal, los colaboradores de solo lectura de este no se transferirán. Esto es porque los colaboradores no pueden tener acceso de solo lectura a los repositorios que pertenecen a una cuenta personal. Para obtener más información sobre los niveles de permisos de repositorio, consulta "[Niveles de permisos para un repositorio de cuentas personales](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" y "[Roles de repositorio para una organización](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)".{% ifversion fpt or ghec %} -- Los patrocinadores que tengan acceso al repositorio a través de un nivel de patrocinio podrían verse afectados. Para más información, vea "[Adición de un repositorio a un nivel de patrocinio](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)".{% endif %} +- When you transfer a repository from an organization to a personal account, the repository's read-only collaborators will not be transferred. This is because collaborators can't have read-only access to repositories owned by a personal account. For more information about repository permission levels, see "[Permission levels for a personal account repository](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" and "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)."{% ifversion fpt or ghec %} +- Sponsors who have access to the repository through a sponsorship tier may be affected. For more information, see "[Adding a repository to a sponsorship tier](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)".{% endif %} -Para más información, vea "[Administración de repositorios remotos](/github/getting-started-with-github/managing-remote-repositories)". +For more information, see "[Managing remote repositories](/github/getting-started-with-github/managing-remote-repositories)." -### Transferencias de repositorios y organizaciones +### Repository transfers and organizations -Para transferir repositorios a una organización, debes tener permisos de creación de repositorios en la organización receptora. Si los propietarios de la organización inhabilitaron la creación de repositorios para los miembros de la organización, solo los propietarios de la organización pueden transferir repositorios hacia fuera o dentro de la organización. +To transfer repositories to an organization, you must have repository creation permissions in the receiving organization. If organization owners have disabled repository creation by organization members, only organization owners can transfer repositories out of or into the organization. -Una vez que se transfiere un repositorio a una organización, los parámetros de permiso del repositorio de la organización predeterminados y los privilegios de membresía predeterminados se aplicarán al repositorio transferido. +Once a repository is transferred to an organization, the organization's default repository permission settings and default membership privileges will apply to the transferred repository. -## Transferir un repositorio que le pertenece a tu cuenta personal +## Transferring a repository owned by your personal account -Puedes transferir tu repositorio a cualquier cuenta personal que acepte la transferencia de tu repositorio. Cuando se transfiere un repositorio entre dos cuentas personales, el propietario del repositorio original y los colaboradores se agregan automáticamente como colaboradores al repositorio nuevo. +You can transfer your repository to any personal account that accepts your repository transfer. When a repository is transferred between two personal accounts, the original repository owner and collaborators are automatically added as collaborators to the new repository. -{% ifversion fpt or ghec %}Si publicaste un sitio de {% data variables.product.prodname_pages %} en un repositorio privado y agregaste un dominio personalizado, antes de transferir el repositorio, deberás eliminar o actualizar tus registros de DNS para evitar el riesgo de que alguien más tome el dominio. Para más información, vea "[Administración de un dominio personalizado para el sitio de {% data variables.product.prodname_pages %}](/articles/managing-a-custom-domain-for-your-github-pages-site)".{% endif %} +{% ifversion fpt or ghec %}If you published a {% data variables.product.prodname_pages %} site in a private repository and added a custom domain, before transferring the repository, you may want to remove or update your DNS records to avoid the risk of a domain takeover. For more information, see "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)."{% endif %} -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} -## Transferir un repositorio que le pertenece a tu organización +## Transferring a repository owned by your organization -Si tienes permisos de propietario en una organización o permisos de administrador para uno de sus repositorios, puedes transferir un repositorio que le pertenece a tu organización a tu cuenta personal o a otra organización. +If you have owner permissions in an organization or admin permissions to one of its repositories, you can transfer a repository owned by your organization to your personal account or to another organization. -1. Inicia sesión en tu cuenta personal que tiene permisos de administrador o propietario en la organización a la que le pertenece el repositorio. -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +1. Sign into your personal account that has admin or owner permissions in the organization that owns the repository. +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} diff --git a/translations/es-ES/content/rest/enterprise-admin/scim.md b/translations/es-ES/content/rest/enterprise-admin/scim.md index 3dac51c030..a95eb461b5 100644 --- a/translations/es-ES/content/rest/enterprise-admin/scim.md +++ b/translations/es-ES/content/rest/enterprise-admin/scim.md @@ -1,16 +1,77 @@ --- title: SCIM -intro: '' +intro: 'You can automate user creation and team memberships using the SCIM API.' versions: ghes: '>=3.6' topics: - API miniTocMaxHeadingLevel: 3 -ms.openlocfilehash: 797973c356a278bc82e55a9e2a6abab391be69a0 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: es-ES -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147060878' --- +{% note %} + +**Note:** The SCIM API for {% data variables.product.product_name %} is currently in private beta and subject to change. To access the private beta and test the API, contact your account manager on {% data variables.contact.contact_enterprise_sales %}. + +{% endnote %} + +## About the SCIM API + +{% data variables.product.product_name %} provides a SCIM API for use by SCIM-enabled Identity Providers (IdPs). An integration on the IdP can use the API to automatically provision, manage, or deprovision user accounts on a {% data variables.product.product_name %} instance that uses SAML single sign-on (SSO) for authentication. For more information about SAML SSO, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)." + +The SCIM API is based on SCIM 2.0. For more information, see the [specification](https://www.simplecloud.info/#Specification). + +### SCIM endpoint URLs + +An IdP can use the following root URL to communicate with the SCIM API for a {% data variables.product.product_name %} instance. + +``` +{% data variables.product.api_url_code %}/scim/v2/ +``` + +Endpoint URLs for the SCIM API are case-sensitive. For example, the first letter in the `Users` endpoint must be capitalized. + +```shell +GET /scim/v2/Users/{scim_user_id} +``` + +### Authenticating calls to the SCIM API + +The SCIM integration on the IdP performs actions on behalf of an enterprise owner for the {% data variables.product.product_name %} instance. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners)." + +To authenticate requests to the API, the person who configures SCIM on the IdP must use a personal access token (classic) with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about personal access tokens (classic), see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". + +{% note %} + +**Note:** Enterprise owners must generate and use a personal access token (classic) for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}Fine-grained personal access tokens and {% endif %}GitHub app callers are not supported at this time. + +{% endnote %} + +### About mapping of SAML and SCIM data + +The {% data variables.product.product_name %} instance links each user who authenticates successfully with SAML SSO to a SCIM identity. To link the identities successfully, the SAML IdP and the SCIM integration must use matching SAML `NameID` and SCIM `userName` values for each user. + +{% ifversion ghes > 3.7 %} +{% note %} + +**Note:** If the {% data variables.product.product_name %} uses Azure AD as a SAML IdP, {% data variables.product.product_name %} will also check the SCIM `externalId` claim and SAML `http://schemas.microsoft.com/identity/claims/objectidentifier` claim to match users first, instead of using `NameID` and `userName`. + +{% endnote %} +{% endif %} + +### Supported SCIM user attributes + +The SCIM API's `User` endpoints support the following attributes within a request's parameters. + +| Name | Type | Description | +| :- | :- | :- | +| `displayName` | String | Human-readable name for a user. | +| `name.formatted` | String | The user's full name, including all middle names, titles, and suffixes, formatted for display. +| `name.givenName` | String | The first name of the user. | +| `name.familyName` | String | The last name of the user. | +| `userName` | String | The username for the user, generated by the IdP. Undergoes [normalization](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#about-username-normalization) before being used. +| `emails` | Array | List of the user's emails. | +| `roles` | Array | List of the user's roles. | +| `externalId` | String | This identifier is generated by an IdP provider. You can find the `externalId` for a user either on the IdP, or by using the [List SCIM provisioned identities](#list-scim-provisioned-identities-for-an-enterprise) endpoint and filtering on other known attributes, such as a user's username or email address on the {% data variables.product.product_name %} instance. | +| `id` | String | Identifier generated by the instance's SCIM endpoint. | +| `active` | Boolean | Indicates whether the identity is active (`true`) or should be suspended (`false`). | + diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-3/12.yml b/translations/es-ES/data/release-notes/enterprise-server/3-3/12.yml index 6f96ac3ca8..e3c6861f08 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-3/12.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-3/12.yml @@ -20,3 +20,4 @@ sections: - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' + - The [file finder](/search-github/searching-on-github/finding-files-on-github) does not return any results. To restore functionality, reinstall the 3.3.12 patch release using a full upgrade package. For more information, see "[Upgrading GitHub Enterprise Server](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package)." \ No newline at end of file diff --git a/translations/ja-JP/content/actions/using-workflows/workflow-commands-for-github-actions.md b/translations/ja-JP/content/actions/using-workflows/workflow-commands-for-github-actions.md index fb6ca86c51..5a6de2d67d 100644 --- a/translations/ja-JP/content/actions/using-workflows/workflow-commands-for-github-actions.md +++ b/translations/ja-JP/content/actions/using-workflows/workflow-commands-for-github-actions.md @@ -1,7 +1,7 @@ --- -title: GitHub Actions のワークフロー コマンド +title: Workflow commands for GitHub Actions shortTitle: Workflow commands -intro: ワークフロー内あるいはアクションのコード内でシェルコマンドを実行する際には、ワークフローコマンドを利用できます。 +intro: You can use workflow commands when running shell commands in a workflow or in an action's code. defaultTool: bash redirect_from: - /articles/development-tools-for-github-actions @@ -16,22 +16,18 @@ versions: ghes: '*' ghae: '*' ghec: '*' -ms.openlocfilehash: 80f10d807cf7f8978173225c17ed4dc0eedeeb22 -ms.sourcegitcommit: 478f2931167988096ae6478a257f492ecaa11794 -ms.translationtype: HT -ms.contentlocale: ja-JP -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147770898' --- -{% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %} -## ワークフローコマンドについて +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} -アクションは、 環境変数を設定する、他のアクションに利用される値を出力する、デバッグメッセージを出力ログに追加するなどのタスクを行うため、ランナーマシンとやりとりできます。 +## About workflow commands -ほとんどのワークフロー コマンドが特定の形式で `echo` コマンドを使用しますが、他のコマンドはファイルへの書き込みによって呼び出されます。 詳しくは、「[環境ファイル](#environment-files)」を参照してください。 +Actions can communicate with the runner machine to set environment variables, output values used by other actions, add debug messages to the output logs, and other tasks. -### 例 +Most workflow commands use the `echo` command in a specific format, while others are invoked by writing to a file. For more information, see "[Environment files](#environment-files)." + +### Example {% bash %} @@ -51,27 +47,62 @@ Write-Output "::workflow-command parameter1={data},parameter2={data}::{command v {% note %} -**注:** ワークフロー コマンドとパラメーター名では、大文字と小文字は区別されません。 +**Note:** Workflow command and parameter names are not case-sensitive. {% endnote %} {% warning %} -**警告:** コマンド プロンプトを使用している場合は、ワークフロー コマンドを使うときに二重引用符 (`"`) を省略してください。 +**Warning:** If you are using Command Prompt, omit double quote characters (`"`) when using workflow commands. {% endwarning %} -## ワークフローコマンドを使ったツールキット関数へのアクセス +## Using workflow commands to access toolkit functions -[actions/toolkit](https://github.com/actions/toolkit) には、ワークフロー コマンドとして実行できる多数の関数が含まれています。 `::` 構文を使用して、YAML ファイル内でワークフロー コマンドを実行してください。そうすると、それらのコマンドが `stdout` を通じてランナーに送信されます。 たとえば、コードを使用して出力を設定する代わりに、以下のようにします。 +The [actions/toolkit](https://github.com/actions/toolkit) includes a number of functions that can be executed as workflow commands. Use the `::` syntax to run the workflow commands within your YAML file; these commands are then sent to the runner over `stdout`. + +{%- ifversion actions-save-state-set-output-envs %} +For example, instead of using code to create an error annotation, as below: + +```javascript{:copy} +core.error('Missing semicolon', {file: 'app.js', startLine: 1}) +``` + +### Example: Creating an annotation for an error + +You can use the `error` command in your workflow to create the same error annotation: + +{% bash %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: echo "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: Write-Output "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endpowershell %} +{%- else %} +For example, instead of using code to set an output, as below: ```javascript{:copy} core.setOutput('SELECTED_COLOR', 'green'); ``` -### 例: 値の設定 +### Example: Setting a value -ワークフローで `set-output` コマンドを使用して、同じ値を設定できます。 +You can use the `set-output` command in your workflow to set the same value: {% bash %} @@ -101,32 +132,44 @@ core.setOutput('SELECTED_COLOR', 'green'); {% endpowershell %} -以下の表は、ワークフロー内で使えるツールキット関数を示しています。 +{% endif %} -| ツールキット関数 | 等価なワークフローのコマンド | +The following table shows which toolkit functions are available within a workflow: + +| Toolkit function | Equivalent workflow command | | ----------------- | ------------- | -| `core.addPath` | `GITHUB_PATH` 環境ファイルを使用してアクセス可能 | +| `core.addPath` | Accessible using environment file `GITHUB_PATH` | | `core.debug` | `debug` |{% ifversion fpt or ghes > 3.2 or ghae or ghec %} | `core.notice` | `notice` |{% endif %} | `core.error` | `error` | | `core.endGroup` | `endgroup` | -| `core.exportVariable` | `GITHUB_ENV` 環境ファイルを使用してアクセス可能 | -| `core.getInput` | `INPUT_{NAME}` 環境変数を使用してアクセス可能 | -| `core.getState` | `STATE_{NAME}` 環境変数を使用してアクセス可能 | -| `core.isDebug` | `RUNNER_DEBUG` 環境変数を使用してアクセス可能 | -{%- ifversion actions-job-summaries %} | `core.summary` | `GITHUB_STEP_SUMMARY` 環境変数を使用してアクセス可能 | {%- endif %} | `core.saveState` | `save-state` | | `core.setCommandEcho` | `echo` | | `core.setFailed` | `::error` と `exit 1` のショートカットとして使用 | | `core.setOutput` | `set-output` | | `core.setSecret` | `add-mask` | | `core.startGroup` | `group` | | `core.warning` | `warning` | +| `core.exportVariable` | Accessible using environment file `GITHUB_ENV` | +| `core.getInput` | Accessible using environment variable `INPUT_{NAME}` | +| `core.getState` | Accessible using environment variable `STATE_{NAME}` | +| `core.isDebug` | Accessible using environment variable `RUNNER_DEBUG` | +{%- ifversion actions-job-summaries %} +| `core.summary` | Accessible using environment variable `GITHUB_STEP_SUMMARY` | +{%- endif %} +| `core.saveState` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_STATE`{% else %}`save-state`{% endif %} | +| `core.setCommandEcho` | `echo` | +| `core.setFailed` | Used as a shortcut for `::error` and `exit 1` | +| `core.setOutput` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_OUTPUT`{% else %}`set-output`{% endif %} | +| `core.setSecret` | `add-mask` | +| `core.startGroup` | `group` | +| `core.warning` | `warning` | -## 出力パラメータの設定 +{% ifversion actions-save-state-set-output-envs %}{% else %} +## Setting an output parameter -アクションの出力パラメータを設定します。 +Sets an action's output parameter. ```{:copy} ::set-output name={name}::{value} ``` -あるいは、出力パラメータをアクションのメタデータファイル中で宣言することもできます。 詳細については、「[{% data variables.product.prodname_actions %} のメタデータ構文](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions)」を参照してください。 +Optionally, you can also declare output parameters in an action's metadata file. For more information, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions)." -### 例: 出力パラメーターの設定 +### Example: Setting an output parameter {% bash %} @@ -143,16 +186,17 @@ Write-Output "::set-output name=action_fruit::strawberry" ``` {% endpowershell %} +{% endif %} -## デバッグメッセージの設定 +## Setting a debug message -デバッグメッセージをログに出力します。 このコマンドによって設定されたデバッグ メッセージをログで表示するには、`ACTIONS_STEP_DEBUG` という名前のシークレットを作成し、値を `true` に設定する必要があります。 詳細については、「[Enabling debug logging](/actions/managing-workflow-runs/enabling-debug-logging)」(デバッグ ログの有効化) を参照してください。 +Prints a debug message to the log. You must create a secret named `ACTIONS_STEP_DEBUG` with the value `true` to see the debug messages set by this command in the log. For more information, see "[Enabling debug logging](/actions/managing-workflow-runs/enabling-debug-logging)." ```{:copy} ::debug::{message} ``` -### 例: デバッグ メッセージの設定 +### Example: Setting a debug message {% bash %} @@ -172,9 +216,9 @@ Write-Output "::debug::Set the Octocat variable" {% ifversion fpt or ghes > 3.2 or ghae or ghec %} -## 通知メッセージの設定 +## Setting a notice message -通知メッセージを作成し、ログにそのメッセージを出力します。 {% data reusables.actions.message-annotation-explanation %} +Creates a notice message and prints the message to the log. {% data reusables.actions.message-annotation-explanation %} ```{:copy} ::notice file={name},line={line},endLine={endLine},title={title}::{message} @@ -182,7 +226,7 @@ Write-Output "::debug::Set the Octocat variable" {% data reusables.actions.message-parameters %} -### 例: 通知メッセージの設定 +### Example: Setting a notice message {% bash %} @@ -198,11 +242,12 @@ echo "::notice file=app.js,line=1,col=5,endColumn=7::Missing semicolon" Write-Output "::notice file=app.js,line=1,col=5,endColumn=7::Missing semicolon" ``` -{% endpowershell %} {% endif %} +{% endpowershell %} +{% endif %} -## 警告メッセージの設定 +## Setting a warning message -警告メッセージを作成し、ログにそのメッセージを出力します。 {% data reusables.actions.message-annotation-explanation %} +Creates a warning message and prints the message to the log. {% data reusables.actions.message-annotation-explanation %} ```{:copy} ::warning file={name},line={line},endLine={endLine},title={title}::{message} @@ -210,7 +255,7 @@ Write-Output "::notice file=app.js,line=1,col=5,endColumn=7::Missing semicolon" {% data reusables.actions.message-parameters %} -### 例: 警告メッセージの設定 +### Example: Setting a warning message {% bash %} @@ -227,9 +272,9 @@ Write-Output "::warning file=app.js,line=1,col=5,endColumn=7::Missing semicolon" {% endpowershell %} -## エラーメッセージの設定 +## Setting an error message -エラーメッセージを作成し、ログにそのメッセージを出力します。 {% data reusables.actions.message-annotation-explanation %} +Creates an error message and prints the message to the log. {% data reusables.actions.message-annotation-explanation %} ```{:copy} ::error file={name},line={line},endLine={endLine},title={title}::{message} @@ -237,7 +282,7 @@ Write-Output "::warning file=app.js,line=1,col=5,endColumn=7::Missing semicolon" {% data reusables.actions.message-parameters %} -### 例: エラー メッセージの設定 +### Example: Setting an error message {% bash %} @@ -255,16 +300,16 @@ Write-Output "::error file=app.js,line=1,col=5,endColumn=7::Missing semicolon" {% endpowershell %} -## ログの行のグループ化 +## Grouping log lines -展開可能なグループをログ中に作成します。 グループを作成するには、`group` コマンドを使用して `title` を指定します。 ログに出力する `group` と `endgroup` コマンド間のすべての内容は、ログで展開可能なエントリ内で入れ子になります。 +Creates an expandable group in the log. To create a group, use the `group` command and specify a `title`. Anything you print to the log between the `group` and `endgroup` commands is nested inside an expandable entry in the log. ```{:copy} ::group::{title} ::endgroup:: ``` -### 例: ログの行のグループ化 +### Example: Grouping log lines {% bash %} @@ -298,19 +343,19 @@ jobs: {% endpowershell %} -![ワークフローの実行ログ中の折りたたみ可能なグループ](/assets/images/actions-log-group.png) +![Foldable group in workflow run log](/assets/images/actions-log-group.png) -## ログ中での値のマスク +## Masking a value in log ```{:copy} ::add-mask::{value} ``` -値をマスクすることにより、文字列または値がログに出力されることを防ぎます。 空白で区切られた、マスクされる各単語は、`*` という文字に置き換えられます。 マスクの `value` には、環境変数または文字列を使用できます。 値をマスクすると、シークレットとして扱われ、ランナーで編集されます。 たとえば、値をマスクした後は、その値を出力として設定することはできません。 +Masking a value prevents a string or variable from being printed in the log. Each masked word separated by whitespace is replaced with the `*` character. You can use an environment variable or string for the mask's `value`. When you mask a value, it is treated as a secret and will be redacted on the runner. For example, after you mask a value, you won't be able to set that value as an output. -### 例: 文字列のマスク +### Example: Masking a string -ログに `"Mona The Octocat"` を出力すると、`"***"` と表示されます。 +When you print `"Mona The Octocat"` in the log, you'll see `"***"`. {% bash %} @@ -330,13 +375,13 @@ Write-Output "::add-mask::Mona The Octocat" {% warning %} -**警告:** シークレットをビルド ログに出力したり、その他のワークフロー コマンド内で使ったりする前に、シークレットを "add-mask" に必ず登録してください。 +**Warning:** Make sure you register the secret with 'add-mask' before outputting it in the build logs or using it in any other workflow commands. {% endwarning %} -### 例: 環境変数のマスク +### Example: Masking an environment variable -ログに変数 `MY_NAME` または値 `"Mona The Octocat"` を出力すると、`"Mona The Octocat"` の代わりに `"***"` と表示されます。 +When you print the variable `MY_NAME` or the value `"Mona The Octocat"` in the log, you'll see `"***"` instead of `"Mona The Octocat"`. {% bash %} @@ -368,19 +413,19 @@ jobs: {% endpowershell %} -## ワークフローコマンドの停止と開始 +## Stopping and starting workflow commands -ワークフローコマンドの処理を停止します。 この特殊コマンドを使うと、意図せずワークフローコマンドを実行することなくいかなるログも取れます。 たとえば、コメントがあるスクリプト全体を出力するためにログ取得を停止できます。 +Stops processing any workflow commands. This special command allows you to log anything without accidentally running a workflow command. For example, you could stop logging to output an entire script that has comments. ```{:copy} ::stop-commands::{endtoken} ``` -ワークフロー コマンドの処理を停止するには、固有のトークンを `stop-commands` に渡します。 ワークフロー コマンドの処理を再開するには、ワークフロー コマンドを停止するために使用したトークンと同じものを渡します。 +To stop the processing of workflow commands, pass a unique token to `stop-commands`. To resume processing workflow commands, pass the same token that you used to stop workflow commands. {% warning %} -**警告:** ランダムに生成された、実行ごとに固有のトークンを使用するようにしてください。 +**Warning:** Make sure the token you're using is randomly generated and unique for each run. {% endwarning %} @@ -388,7 +433,7 @@ jobs: ::{endtoken}:: ``` -### 例: ワークフロー コマンドの停止と開始 +### Example: Stopping and starting workflow commands {% bash %} @@ -434,22 +479,22 @@ jobs: {% endpowershell %} -## コマンド出力のエコー +## Echoing command outputs -ワークフロー コマンドのエコーを有効または無効にします。 たとえば、ワークフローで `set-output` コマンドを使用すると、出力パラメーターが設定されますが、ワークフロー実行のログにはコマンド自体は表示されません。 コマンドのエコーを有効にした場合、`::set-output name={name}::{value}` のようにコマンドがログに表示されます。 +Enables or disables echoing of workflow commands. For example, if you use the `set-output` command in a workflow, it sets an output parameter but the workflow run's log does not show the command itself. If you enable command echoing, then the log shows the command, such as `::set-output name={name}::{value}`. ```{:copy} ::echo::on ::echo::off ``` -コマンドのエコーは既定では無効になっています。 ただし、コマンドの処理中にエラーが発生した場合は、ワークフロー コマンドがエコーされます。 +Command echoing is disabled by default. However, a workflow command is echoed if there are any errors processing the command. -`add-mask`、`debug`、`warning`、`error` コマンドは、出力が既にログにエコーされるようになっているため、エコーをサポートしていません。 +The `add-mask`, `debug`, `warning`, and `error` commands do not support echoing because their outputs are already echoed to the log. -`ACTIONS_STEP_DEBUG` シークレットを使用してステップのデバッグ ログを有効にすることで、コマンドのエコーをグローバルに有効にすることもできます。 詳しくは、「[デバッグ ロギングの有効化](/actions/managing-workflow-runs/enabling-debug-logging)」をご覧ください。 対照的に、`echo` ワークフロー コマンドを使用すると、リポジトリ内のすべてのワークフローに対してコマンドのエコーを有効にするのではなく、より詳細なレベルで有効にすることができます。 +You can also enable command echoing globally by turning on step debug logging using the `ACTIONS_STEP_DEBUG` secret. For more information, see "[Enabling debug logging](/actions/managing-workflow-runs/enabling-debug-logging)". In contrast, the `echo` workflow command lets you enable command echoing at a more granular level, rather than enabling it for every workflow in a repository. -### 例: コマンドのエコーの切り替え +### Example: Toggling command echoing {% bash %} @@ -487,44 +532,58 @@ jobs: {% endpowershell %} -上記の例では、次の行がログに出力されます。 +The example above prints the following lines to the log: ```{:copy} ::set-output name=action_echo::enabled ::echo::off ``` -ログには 2 番目の `set-output` と `echo` ワークフロー コマンドのみが含まれています。これは、それらのコマンドが実行されたときにのみコマンドのエコーが有効になったからです。 出力パラメーターは、常にエコーされるとは限りませんが、すべての場合において設定されます。 +Only the second `set-output` and `echo` workflow commands are included in the log because command echoing was only enabled when they were run. Even though it is not always echoed, the output parameter is set in all cases. -## pre及びpostアクションへの値の送信 +## Sending values to the pre and post actions -`save-state` コマンドを使用して、ワークフローの `pre:` または `post:` アクションと共有するための環境変数を作成できます。 たとえば、`pre:` アクションでファイルを作成し、そのファイルの場所を `main:` アクションに渡し、`post:` アクションを使用してファイルを削除できます。 あるいは、`main:` アクションでファイルを作成し、そのファイルの場所を `post:` アクションに渡し、さらに `post:` アクションを使用してファイルを削除することもできます。 +{% ifversion actions-save-state-set-output-envs %}You can create environment variables for sharing with your workflow's `pre:` or `post:` actions by writing to the file located at `GITHUB_STATE`{% else %}You can use the `save-state` command to create environment variables for sharing with your workflow's `pre:` or `post:` actions{% endif %}. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. -複数の `pre:` または `post:` アクションがある場合、`save-state` が使用されたアクションでのみ保存された値にアクセスできます。 `post:` アクションについて詳しくは、「[{% data variables.product.prodname_actions %} のメタデータ構文](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)」をご覧ください。 +If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where {% ifversion actions-save-state-set-output-envs %}it was written to `GITHUB_STATE`{% else %}`save-state` was used{% endif %}. For more information on the `post:` action, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." -`save-state` コマンドはアクション内でしか実行できず、YAML ファイルでは利用できません。 保存された値は、`STATE_` というプレフィックスが付いた環境変数として保存されます。 +{% ifversion actions-save-state-set-output-envs %}The `GITHUB_STATE` file is only available within an action{% else %}The `save-state` command can only be run within an action, and is not available to YAML files{% endif %}. The saved value is stored as an environment value with the `STATE_` prefix. -この例では JavaScript を使用して `save-state` コマンドを実行します。 結果の環境変数は、`STATE_processID` という名前になり、値が `12345` になります。 +{% ifversion actions-save-state-set-output-envs %} +This example uses JavaScript to write to the `GITHUB_STATE` file. The resulting environment variable is named `STATE_processID` with the value of `12345`: + +```javascript{:copy} +import * as fs from 'fs' +import * as os from 'os' + +fs.appendFileSync(process.env.GITHUB_STATE, `processID=12345${os.EOL}`, { + encoding: 'utf8' +}) +``` + +{% else %} +This example uses JavaScript to run the `save-state` command. The resulting environment variable is named `STATE_processID` with the value of `12345`: ```javascript{:copy} console.log('::save-state name=processID::12345') ``` +{% endif %} -この後、`STATE_processID` 変数は `main` アクションで実行されるクリーンアップ スクリプトでのみ利用できます。 この例は `main` で実行され、JavaScript を使用して `STATE_processID` 環境変数に割り当てられた値を表示します。 +The `STATE_processID` variable is then exclusively available to the cleanup script running under the `main` action. This example runs in `main` and uses JavaScript to display the value assigned to the `STATE_processID` environment variable: ```javascript{:copy} console.log("The running PID from the main action is: " + process.env.STATE_processID); ``` -## 環境ファイル +## Environment files -ワークフローの実行中に、ランナーは特定のアクションを実行する際に使用できる一時ファイルを生成します。 これらのファイルへのパスは、環境変数を介して公開されます。 コマンドを適切に処理するには、これらのファイルに書き込むときに UTF-8 エンコーディングを使用する必要があります。 複数のコマンドを、改行で区切って同じファイルに書き込むことができます。 +During the execution of a workflow, the runner generates temporary files that can be used to perform certain actions. The path to these files are exposed via environment variables. You will need to use UTF-8 encoding when writing to these files to ensure proper processing of the commands. Multiple commands can be written to the same file, separated by newlines. {% powershell %} {% note %} -**注:** PowerShell バージョン 5.1 以下 (`shell: powershell`) では UTF-8 が既定で使用されないため、UTF-8 エンコードを指定する必要があります。 次に例を示します。 +**Note:** PowerShell versions 5.1 and below (`shell: powershell`) do not use UTF-8 by default, so you must specify the UTF-8 encoding. For example: ```yaml{:copy} jobs: @@ -536,7 +595,7 @@ jobs: "mypath" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append ``` -PowerShell Core バージョン 6 以上 (`shell: pwsh`) では、UTF-8 が既定で使用されます。 次に例を示します。 +PowerShell Core versions 6 and higher (`shell: pwsh`) use UTF-8 by default. For example: ```yaml{:copy} jobs: @@ -552,7 +611,7 @@ jobs: {% endpowershell %} -## 環境変数の設定 +## Setting an environment variable {% bash %} @@ -564,13 +623,13 @@ echo "{environment_variable_name}={value}" >> $GITHUB_ENV {% powershell %} -- PowerShell バージョン 6 以上を使用: +- Using PowerShell version 6 and higher: ```pwsh{:copy} "{environment_variable_name}={value}" >> $env:GITHUB_ENV ``` -- PowerShell バージョン 5.1 以下を使用: +- Using PowerShell version 5.1 and below: ```powershell{:copy} "{environment_variable_name}={value}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append @@ -578,9 +637,9 @@ echo "{environment_variable_name}={value}" >> $GITHUB_ENV {% endpowershell %} -環境変数を定義または更新し、これを `GITHUB_ENV` 環境ファイルに書き込むことで、ワークフロー ジョブの後続のステップで環境変数が利用できるようになります。 環境変数を作成または更新するステップは、新しい値にアクセスできませんが、ジョブにおける後続のすべてのステップはアクセスできます。 環境変数の名前では、大文字と小文字が区別され、句読点を含めることができます。 詳しくは、「[環境変数](/actions/learn-github-actions/environment-variables)」をご覧ください。 +You can make an environment variable available to any subsequent steps in a workflow job by defining or updating the environment variable and writing this to the `GITHUB_ENV` environment file. The step that creates or updates the environment variable does not have access to the new value, but all subsequent steps in a job will have access. The names of environment variables are case-sensitive, and you can include punctuation. For more information, see "[Environment variables](/actions/learn-github-actions/environment-variables)." -### 例 +### Example {% bash %} @@ -618,9 +677,9 @@ steps: {% endpowershell %} -### 複数行の文字列 +### Multiline strings -複数行の文字列の場合、次の構文で区切り文字を使用できます。 +For multiline strings, you may use a delimiter with the following syntax. ```{:copy} {name}<<{delimiter} @@ -630,13 +689,13 @@ steps: {% warning %} -**警告:** ランダムに生成された、実行ごとに固有の区切り記号を使用するようにしてください。 詳細については、「[スクリプト インジェクションのリスクを理解する](/actions/security-guides/security-hardening-for-github-actions#understanding-the-risk-of-script-injections)」を参照してください。 +**Warning:** Make sure the delimiter you're using is randomly generated and unique for each run. For more information, see "[Understanding the risk of script injections](/actions/security-guides/security-hardening-for-github-actions#understanding-the-risk-of-script-injections)". {% endwarning %} -#### 例 +#### Example -この例では、区切り文字として `EOF` を使用し、`JSON_RESPONSE` 環境変数を `curl` の応答の値に設定します。 +This example uses `EOF` as a delimiter, and sets the `JSON_RESPONSE` environment variable to the value of the `curl` response. {% bash %} @@ -667,9 +726,65 @@ steps: {% endpowershell %} +{% ifversion actions-save-state-set-output-envs %} +## Setting an output parameter + +Sets a step's output parameter. Note that the step will need an `id` to be defined to later retrieve the output value. + +{% bash %} + +```bash{:copy} +echo "{name}={value}" >> $GITHUB_OUTPUT +``` +{% endbash %} + +{% powershell %} + +```pwsh{:copy} +"{name}=value" >> $env:GITHUB_OUTPUT +``` + +{% endpowershell %} + +### Example + +{% bash %} + +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +{% raw %} +```yaml{:copy} + - name: Set color + id: random-color-generator + run: echo "SELECTED_COLOR=green" >> $GITHUB_OUTPUT + - name: Get color + run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +```yaml{:copy} + - name: Set color + id: random-color-generator + run: | + "SELECTED_COLOR=green" >> $env:GITHUB_OUTPUT + - name: Get color + run: Write-Output "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endpowershell %} +{% endif %} + {% ifversion actions-job-summaries %} -## ジョブの概要の追加 +## Adding a job summary {% bash %} @@ -687,13 +802,13 @@ echo "{markdown content}" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -ジョブごとにいくつかのカスタム Markdown を設定して、ワークフロー実行の概要ページに表示されるようにすることができます。 ジョブの概要を使用して、テスト結果の概要といった独自の内容を表示およびグループ化できます。これにより、ワークフロー実行の結果を表示するユーザーが、実行に関連する重要な情報 (エラーなど) を確認するためにログを調べる必要がなくなります。 +You can set some custom Markdown for each job so that it will be displayed on the summary page of a workflow run. You can use job summaries to display and group unique content, such as test result summaries, so that someone viewing the result of a workflow run doesn't need to go into the logs to see important information related to the run, such as failures. -ジョブの概要では [{% data variables.product.prodname_dotcom %} Flavored Markdown](https://github.github.com/gfm/) がサポートされていて、ステップの Markdown コンテンツを `GITHUB_STEP_SUMMARY` 環境ファイルに追加できます。 `GITHUB_STEP_SUMMARY` は、ジョブのステップごとに固有のものです。 `GITHUB_STEP_SUMMARY` が参照するステップごとのファイルについて詳しくは、「[環境ファイル](#environment-files)」をご覧ください。 +Job summaries support [{% data variables.product.prodname_dotcom %} flavored Markdown](https://github.github.com/gfm/), and you can add your Markdown content for a step to the `GITHUB_STEP_SUMMARY` environment file. `GITHUB_STEP_SUMMARY` is unique for each step in a job. For more information about the per-step file that `GITHUB_STEP_SUMMARY` references, see "[Environment files](#environment-files)." -ジョブが完了すると、ジョブにおけるすべてのステップの概要が 1 つのジョブの概要にグループ化され、ワークフロー実行の概要ページに表示されます。 複数のジョブが概要を生成する場合、ジョブの概要の順序はジョブの完了時間順になります。 +When a job finishes, the summaries for all steps in a job are grouped together into a single job summary and are shown on the workflow run summary page. If multiple jobs generate summaries, the job summaries are ordered by job completion time. -### 例 +### Example {% bash %} @@ -711,13 +826,13 @@ echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -![Markdown の概要の例](/assets/images/actions-job-summary-simple-example.png) +![Markdown summary example](/assets/images/actions-job-summary-simple-example.png) -### 複数行の Markdown コンテンツ +### Multiline Markdown content -複数行の Markdown コンテンツの場合は、`>>` を使用して、現在のステップのコンテンツを連続して追加できます。 追加操作のたびに、改行文字が自動的に追加されます。 +For multiline Markdown content, you can use `>>` to continuously append content for the current step. With every append operation, a newline character is automatically added. -#### 例 +#### Example {% bash %} @@ -747,11 +862,11 @@ echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -### ジョブの概要の上書き +### Overwriting job summaries -現在のステップのすべてのコンテンツをクリアするには、`>` を使用して、以前に追加したコンテンツを上書きします。 +To clear all content for the current step, you can use `>` to overwrite any previously added content. -#### 例 +#### Example {% bash %} @@ -775,11 +890,11 @@ echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -### ジョブの概要の削除 +### Removing job summaries -現在のステップの概要を完全に削除するには、`GITHUB_STEP_SUMMARY` が参照するファイルを削除します。 +To completely remove a summary for the current step, the file that `GITHUB_STEP_SUMMARY` references can be deleted. -#### 例 +#### Example {% bash %} @@ -803,17 +918,17 @@ echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY {% endpowershell %} -ステップが完了すると、ジョブの概要がアップロードされ、後続のステップは以前にアップロードされた Markdown コンテンツを変更できません。 概要では、誤って追加された可能性があるシークレットが自動的にマスクされます。 ジョブの概要に削除する必要がある機密情報が含まれている場合は、ワークフロー実行全体を削除して、そのジョブの概要をすべて削除できます。 詳しくは、「[ワークフロー実行の削除](/actions/managing-workflow-runs/deleting-a-workflow-run)」をご覧ください。 +After a step has completed, job summaries are uploaded and subsequent steps cannot modify previously uploaded Markdown content. Summaries automatically mask any secrets that might have been added accidentally. If a job summary contains sensitive information that must be deleted, you can delete the entire workflow run to remove all its job summaries. For more information see "[Deleting a workflow run](/actions/managing-workflow-runs/deleting-a-workflow-run)." -### ステップの分離と制限 +### Step isolation and limits -ジョブの概要はステップ間で分離されていて、各ステップのサイズは最大 1 MiB に制限されています。 分離がステップ間で適用されるため、1 つのステップにおいて Markdown の形式が誤っている可能性があっても、後続のステップで Markdown のレンダリングが中断することはありません。 ステップに 1 MiB を超えるコンテンツが追加された場合、ステップのアップロードは失敗し、エラーの注釈が作成されます。 ジョブの概要のアップロード エラーは、ステップまたはジョブの全体的な状態には影響しません。 ジョブごとに、ステップのジョブの概要が最大 20 件表示されます。 +Job summaries are isolated between steps and each step is restricted to a maximum size of 1MiB. Isolation is enforced between steps so that potentially malformed Markdown from a single step cannot break Markdown rendering for subsequent steps. If more than 1MiB of content is added for a step, then the upload for the step will fail and an error annotation will be created. Upload failures for job summaries do not affect the overall status of a step or a job. A maximum of 20 job summaries from steps are displayed per job. {% endif %} -## システムパスの追加 +## Adding a system path -システムの `PATH` 変数の先頭にディレクトリを追加し、自動的に現在のジョブにおける後続のすべてのアクションで利用できるようにします。現在実行中のアクションは、更新されたパス変数にアクセスできません。 ジョブに現在定義されているパスを確認するには、ステップまたはアクションで `echo "$PATH"` を使うことができます。 +Prepends a directory to the system `PATH` variable and automatically makes it available to all subsequent actions in the current job; the currently running action cannot access the updated path variable. To see the currently defined paths for your job, you can use `echo "$PATH"` in a step or an action. {% bash %} @@ -830,11 +945,11 @@ echo "{path}" >> $GITHUB_PATH {% endpowershell %} -### 例 +### Example {% bash %} -この例では、ユーザーの `$HOME/.local/bin` ディレクトリを `PATH` に追加する方法を示しています。 +This example demonstrates how to add the user `$HOME/.local/bin` directory to `PATH`: ```bash{:copy} echo "$HOME/.local/bin" >> $GITHUB_PATH @@ -844,7 +959,7 @@ echo "$HOME/.local/bin" >> $GITHUB_PATH {% powershell %} -この例では、ユーザーの `$env:HOMEPATH/.local/bin` ディレクトリを `PATH` に追加する方法を示しています。 +This example demonstrates how to add the user `$env:HOMEPATH/.local/bin` directory to `PATH`: ```pwsh{:copy} "$env:HOMEPATH/.local/bin" >> $env:GITHUB_PATH diff --git a/translations/ja-JP/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md b/translations/ja-JP/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md index fa49ebc9f5..65a19be5d0 100644 --- a/translations/ja-JP/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md +++ b/translations/ja-JP/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md @@ -116,7 +116,7 @@ After you enable {% data variables.product.prodname_dependabot_alerts %} for you {% data reusables.enterprise_management_console.save-settings %} 1. Click **Visit your instance**. -1. Configure self-hosted runners to create the pull requests that will update dependencies. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." +1. Configure dedicated self-hosted runners to create the pull requests that will update dependencies. This is required because the workflows use a specific runner label. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.github-connect-tab %} 1. Under "{% data variables.product.prodname_dependabot %}", to the right of "Users can easily upgrade to non-vulnerable open source code dependencies", click **Enable**. diff --git a/translations/ja-JP/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/translations/ja-JP/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 92fa29e8a5..870e5fd520 100644 --- a/translations/ja-JP/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/translations/ja-JP/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -66,7 +66,8 @@ If you are a site administrator for {% data variables.product.product_location % ```shell > Generating public/private ALGORITHM key pair. ``` -3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. +When you're prompted to "Enter a file in which to save the key", you can press **Enter** to accept the default file location. Please note that if you created SSH keys previously, ssh-keygen may ask you to rewrite another key, in which case we recommend creating a custom-named SSH key. To do so, type the default file location and replace id_ssh_keyname with your custom key name. + {% mac %} diff --git a/translations/ja-JP/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md b/translations/ja-JP/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md index 4e5d9b7094..d2ad2bdba2 100644 --- a/translations/ja-JP/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md +++ b/translations/ja-JP/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md @@ -88,7 +88,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} -1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Committers." +1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for organization-level data](/assets/images/help/billing/download-organization-GHAS-usage-data.png) #### At the enterprise-level @@ -96,7 +96,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. Under "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Commiters." +1. Under "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for enterprise-level data](/assets/images/help/billing/download-enterprise-GHAS-usage-data.png) ### Downloading {% data variables.product.prodname_advanced_security %} license usage information through the REST API diff --git a/translations/ja-JP/content/repositories/creating-and-managing-repositories/transferring-a-repository.md b/translations/ja-JP/content/repositories/creating-and-managing-repositories/transferring-a-repository.md index db48267969..92900222ad 100644 --- a/translations/ja-JP/content/repositories/creating-and-managing-repositories/transferring-a-repository.md +++ b/translations/ja-JP/content/repositories/creating-and-managing-repositories/transferring-a-repository.md @@ -1,6 +1,6 @@ --- -title: リポジトリを移譲する -intro: 他のユーザや Organization アカウントにリポジトリを移譲できます。 +title: Transferring a repository +intro: You can transfer repositories to other users or organization accounts. redirect_from: - /articles/about-repository-transfers - /move-a-repo @@ -21,64 +21,62 @@ versions: ghec: '*' topics: - Repositories -ms.openlocfilehash: 129e0a379bef1d621d08283ad5a2c5ba33c7c696 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: ja-JP -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147435269' --- -## リポジトリの移譲について +## About repository transfers -リポジトリを新たなオーナーに移譲すると、そのオーナーはすぐにリポジトリの内容、Issue、プルリクエスト、リリース、プロジェクトボード、そして設定を管理できるようになります。 +When you transfer a repository to a new owner, they can immediately administer the repository's contents, issues, pull requests, releases, {% data variables.product.prodname_projects_v1 %}, and settings. -リポジトリの移譲の前提条件: -- 所有しているリポジトリを別の個人用アカウントに移譲すると、新しいオーナーに確認のメールが送られます。{% ifversion fpt or ghec %}確認のメールには、移譲を受け入れる手順が記載されています。 新しいオーナーが移譲を 1 日以内に受け入れなければ、招待は期限切れになります。{% endif %} -- 自分が所有しているリポジトリを Organization に移譲するには、対象 Organization のリポジトリを作成する権限が必要です。 -- ターゲットのアカウントは、同じ名前のリポジトリを持っていたり、同じネットワーク内にフォークを持っていたりしてはなりません。 -- リポジトリのオリジナルのオーナーは、移譲されたリポジトリにコラボレーターとして追加されます。 移譲されたリポジトリの他のコラボレーターはそのまま変わりません。{% ifversion ghes < 3.7 %} -- 内部リポジトリを移譲することはできません。{% endif %} -- プライベートフォークは移譲できません。 +Prerequisites for repository transfers: +- When you transfer a repository that you own to another personal account, the new owner will receive a confirmation email.{% ifversion fpt or ghec %} The confirmation email includes instructions for accepting the transfer. If the new owner doesn't accept the transfer within one day, the invitation will expire.{% endif %} +- To transfer a repository that you own to an organization, you must have permission to create a repository in the target organization. +- The target account must not have a repository with the same name, or a fork in the same network. +- The original owner of the repository is added as a collaborator on the transferred repository. Other collaborators to the transferred repository remain intact.{% ifversion ghes < 3.7 %} +- Internal repositories can't be transferred.{% endif %} +- Private forks can't be transferred. -{% ifversion fpt or ghec %}プライベート リポジトリを {% data variables.product.prodname_free_user %} ユーザーまたは Organization アカウントに移譲すると、リポジトリは保護されたブランチや {% data variables.product.prodname_pages %} などの機能にアクセスできなくなります。 {% data reusables.gated-features.more-info %}{% endif %} +{% ifversion fpt or ghec %}If you transfer a private repository to a {% data variables.product.prodname_free_user %} user or organization account, the repository will lose access to features like protected branches and {% data variables.product.prodname_pages %}. {% data reusables.gated-features.more-info %}{% endif %} -### リポジトリと共に移譲されるものは? +### What's transferred with a repository? -リポジトリを移譲すると、その Issue、プルリクエスト、ウィキ、Star、そして Watch しているユーザも移譲されます。 移譲されたリポジトリに webhook、サービス、シークレット、あるいはデプロイキーが含まれている場合、移譲が完了した後もそれらは関連付けられたままになります。 コミットに関する Git の情報は、コントリビューションを含めて保持されます。 さらに: +When you transfer a repository, its issues, pull requests, wiki, stars, and watchers are also transferred. If the transferred repository contains webhooks, services, secrets, or deploy keys, they will remain associated after the transfer is complete. Git information about commits, including contributions, is preserved. In addition: -- 移譲されたリポジトリがフォークである場合、それは上流のリポジトリに関連付けられたままになります。 -- 移譲されたリポジトリにフォークがある場合、それらのフォークは移譲が完了した後リポジトリに関連付けられたままになります。 -- 移譲されたリポジトリが {% data variables.large_files.product_name_long %} を使う場合、すべての {% data variables.large_files.product_name_short %} オブジェクトは自動的に移動します。 この移譲はバックグラウンドで行われます。このため、多数の {% data variables.large_files.product_name_short %} オブジェクトがあるか、{% data variables.large_files.product_name_short %} オブジェクト自体のサイズが大きい場合、移譲には時間がかかることがあります。{% ifversion fpt or ghec %}{% data variables.large_files.product_name_short %} を利用するリポジトリを移譲する前に、受信側のアカウントが、移動する {% data variables.large_files.product_name_short %} オブジェクトを保存するために十分なデータ パックを所有していることを確認してください。 個人用アカウントにストレージを追加する方法について詳しくは、「[{% data variables.large_files.product_name_long %} をアップグレードする](/articles/upgrading-git-large-file-storage)」をご覧ください。{% endif %} -- リポジトリを 2 つの個人用アカウント間で移譲する場合、Issue の割り当てはそのまま残ります。 個人用アカウントから Organization にリポジトリを移譲する場合、Organization のメンバーに割り当てられた Issue はそのまま残ります。その他のすべての Issue 担当者はクリアされます。 Organization の中のオーナーだけが、新しい Issue のアサインを作成できます。 Organization から個人用アカウントにリポジトリを移譲する場合、リポジトリのオーナーに割り当てられた Issue のみが保持されて、その他のすべての Issue 担当者は削除されます。 -- 移譲されたリポジトリが {% data variables.product.prodname_pages %} サイトを含む場合、Web 上の Git リポジトリへのリンクや Git のアクティビティを通じたリンクはリダイレクトされます。 しかし、リポジトリに関連付けられている {% data variables.product.prodname_pages %} はリダイレクトされません。 -- 以前のリポジトリの場所へのすべてのリンクは、新しい場所へ自動的にリダイレクトされます。 移譲されたリポジトリで `git clone`、`git fetch`、または `git push` を使う場合には、これらのコマンドは新しいリポジトリの場所または URL にリダイレクトされます。 しかし、混乱を避けるため、既存のローカルクローンは新しいリポジトリの URL を指すよう更新することを強くおすすめします。 これはコマンド ラインで `git remote` を使うことで行えます。 +- If the transferred repository is a fork, then it remains associated with the upstream repository. +- If the transferred repository has any forks, then those forks will remain associated with the repository after the transfer is complete. +- If the transferred repository uses {% data variables.large_files.product_name_long %}, all {% data variables.large_files.product_name_short %} objects are automatically moved. This transfer occurs in the background, so if you have a large number of {% data variables.large_files.product_name_short %} objects or if the {% data variables.large_files.product_name_short %} objects themselves are large, it may take some time for the transfer to occur.{% ifversion fpt or ghec %} Before you transfer a repository that uses {% data variables.large_files.product_name_short %}, make sure the receiving account has enough data packs to store the {% data variables.large_files.product_name_short %} objects you'll be moving over. For more information on adding storage for personal accounts, see "[Upgrading {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)."{% endif %} +- When a repository is transferred between two personal accounts, issue assignments are left intact. When you transfer a repository from a personal account to an organization, issues assigned to members in the organization remain intact, and all other issue assignees are cleared. Only owners in the organization are allowed to create new issue assignments. When you transfer a repository from an organization to a personal account, only issues assigned to the repository's owner are kept, and all other issue assignees are removed. +- If the transferred repository contains a {% data variables.product.prodname_pages %} site, then links to the Git repository on the Web and through Git activity are redirected. However, we don't redirect {% data variables.product.prodname_pages %} associated with the repository. +- All links to the previous repository location are automatically redirected to the new location. When you use `git clone`, `git fetch`, or `git push` on a transferred repository, these commands will redirect to the new repository location or URL. However, to avoid confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using `git remote` on the command line: ```shell - $ git remote set-url origin new_url + $ git remote set-url origin NEW_URL ``` -- Organization から個人用アカウントにリポジトリを移譲する場合、リポジトリの読み取り専用コラボレーターは移譲されません。 個人用アカウントが所有するリポジトリに対して、コラボレーターが読み取り専用アクセス権を持つことはできないからです。 リポジトリの権限レベルについて詳しくは、「[個人用アカウントのリポジトリの権限レベル](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)」と「[Organization のリポジトリ ロール](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)」をご覧ください。{% ifversion fpt or ghec %} -- スポンサーシップ層を通じてリポジトリにアクセスできるスポンサーが影響を受ける可能性があります。 詳しくは、「[スポンサーシップ層へのリポジトリの追加](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)」をご覧ください。{% endif %} +- When you transfer a repository from an organization to a personal account, the repository's read-only collaborators will not be transferred. This is because collaborators can't have read-only access to repositories owned by a personal account. For more information about repository permission levels, see "[Permission levels for a personal account repository](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" and "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)."{% ifversion fpt or ghec %} +- Sponsors who have access to the repository through a sponsorship tier may be affected. For more information, see "[Adding a repository to a sponsorship tier](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)".{% endif %} -詳細については、「[リモート リポジトリを管理する](/github/getting-started-with-github/managing-remote-repositories)」を参照してください。 +For more information, see "[Managing remote repositories](/github/getting-started-with-github/managing-remote-repositories)." -### リポジトリの移譲および Organization +### Repository transfers and organizations -Organization にリポジトリを移譲するには、受け取る Organization でのリポジトリ作成許可を持っている必要があります。 Organization のオーナーが Organization のメンバーによるリポジトリ作成を無効化している場合、Organization のオーナーだけが、その Organization に対して、または、Organization からリポジトリを移譲できます。 +To transfer repositories to an organization, you must have repository creation permissions in the receiving organization. If organization owners have disabled repository creation by organization members, only organization owners can transfer repositories out of or into the organization. -Organization にリポジトリが移譲されたら、Organization のデフォルトのリポジトリ許可設定およびデフォルトのメンバーシップの権利が、移譲されたリポジトリに適用されます。 +Once a repository is transferred to an organization, the organization's default repository permission settings and default membership privileges will apply to the transferred repository. -## 個人アカウントが所有しているリポジトリを移譲する +## Transferring a repository owned by your personal account -リポジトリの移譲を受け入れるどの個人用アカウントにも、リポジトリを移譲できます。 2 つの個人用アカウント間でリポジトリを移譲する場合、元のリポジトリ オーナーとコラボレーターは、新しいリポジトリにコラボレーターとして自動的に追加されます。 +You can transfer your repository to any personal account that accepts your repository transfer. When a repository is transferred between two personal accounts, the original repository owner and collaborators are automatically added as collaborators to the new repository. -{% ifversion fpt or ghec %}プライベート リポジトリに {% data variables.product.prodname_pages %} サイトを公開し、カスタム ドメインを追加した場合、ドメイン乗っ取りのリスクを避けるために、リポジトリを移譲する前に DNS レコードを削除または更新することをお勧めします。 詳しくは、「[{% data variables.product.prodname_pages %} サイトのカスタム ドメインを管理する](/articles/managing-a-custom-domain-for-your-github-pages-site)」をご覧ください。{% endif %} +{% ifversion fpt or ghec %}If you published a {% data variables.product.prodname_pages %} site in a private repository and added a custom domain, before transferring the repository, you may want to remove or update your DNS records to avoid the risk of a domain takeover. For more information, see "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)."{% endif %} -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} -## Organization が所有しているリポジトリを移譲する +## Transferring a repository owned by your organization -Organization でオーナー権限がある場合、または Organization のリポジトリの 1 つに対する管理者権限がある場合、Organization が所有しているリポジトリを個人用アカウントまたは別の Organization に移譲できます。 +If you have owner permissions in an organization or admin permissions to one of its repositories, you can transfer a repository owned by your organization to your personal account or to another organization. -1. リポジトリを所有している Organization で管理者またはオーナー権限がある個人用アカウントにサインインします。 -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +1. Sign into your personal account that has admin or owner permissions in the organization that owns the repository. +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} diff --git a/translations/ja-JP/content/rest/enterprise-admin/scim.md b/translations/ja-JP/content/rest/enterprise-admin/scim.md index c4892917ae..a95eb461b5 100644 --- a/translations/ja-JP/content/rest/enterprise-admin/scim.md +++ b/translations/ja-JP/content/rest/enterprise-admin/scim.md @@ -1,16 +1,77 @@ --- title: SCIM -intro: '' +intro: 'You can automate user creation and team memberships using the SCIM API.' versions: ghes: '>=3.6' topics: - API miniTocMaxHeadingLevel: 3 -ms.openlocfilehash: 797973c356a278bc82e55a9e2a6abab391be69a0 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: ja-JP -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147060875' --- +{% note %} + +**Note:** The SCIM API for {% data variables.product.product_name %} is currently in private beta and subject to change. To access the private beta and test the API, contact your account manager on {% data variables.contact.contact_enterprise_sales %}. + +{% endnote %} + +## About the SCIM API + +{% data variables.product.product_name %} provides a SCIM API for use by SCIM-enabled Identity Providers (IdPs). An integration on the IdP can use the API to automatically provision, manage, or deprovision user accounts on a {% data variables.product.product_name %} instance that uses SAML single sign-on (SSO) for authentication. For more information about SAML SSO, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)." + +The SCIM API is based on SCIM 2.0. For more information, see the [specification](https://www.simplecloud.info/#Specification). + +### SCIM endpoint URLs + +An IdP can use the following root URL to communicate with the SCIM API for a {% data variables.product.product_name %} instance. + +``` +{% data variables.product.api_url_code %}/scim/v2/ +``` + +Endpoint URLs for the SCIM API are case-sensitive. For example, the first letter in the `Users` endpoint must be capitalized. + +```shell +GET /scim/v2/Users/{scim_user_id} +``` + +### Authenticating calls to the SCIM API + +The SCIM integration on the IdP performs actions on behalf of an enterprise owner for the {% data variables.product.product_name %} instance. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners)." + +To authenticate requests to the API, the person who configures SCIM on the IdP must use a personal access token (classic) with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about personal access tokens (classic), see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". + +{% note %} + +**Note:** Enterprise owners must generate and use a personal access token (classic) for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}Fine-grained personal access tokens and {% endif %}GitHub app callers are not supported at this time. + +{% endnote %} + +### About mapping of SAML and SCIM data + +The {% data variables.product.product_name %} instance links each user who authenticates successfully with SAML SSO to a SCIM identity. To link the identities successfully, the SAML IdP and the SCIM integration must use matching SAML `NameID` and SCIM `userName` values for each user. + +{% ifversion ghes > 3.7 %} +{% note %} + +**Note:** If the {% data variables.product.product_name %} uses Azure AD as a SAML IdP, {% data variables.product.product_name %} will also check the SCIM `externalId` claim and SAML `http://schemas.microsoft.com/identity/claims/objectidentifier` claim to match users first, instead of using `NameID` and `userName`. + +{% endnote %} +{% endif %} + +### Supported SCIM user attributes + +The SCIM API's `User` endpoints support the following attributes within a request's parameters. + +| Name | Type | Description | +| :- | :- | :- | +| `displayName` | String | Human-readable name for a user. | +| `name.formatted` | String | The user's full name, including all middle names, titles, and suffixes, formatted for display. +| `name.givenName` | String | The first name of the user. | +| `name.familyName` | String | The last name of the user. | +| `userName` | String | The username for the user, generated by the IdP. Undergoes [normalization](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#about-username-normalization) before being used. +| `emails` | Array | List of the user's emails. | +| `roles` | Array | List of the user's roles. | +| `externalId` | String | This identifier is generated by an IdP provider. You can find the `externalId` for a user either on the IdP, or by using the [List SCIM provisioned identities](#list-scim-provisioned-identities-for-an-enterprise) endpoint and filtering on other known attributes, such as a user's username or email address on the {% data variables.product.product_name %} instance. | +| `id` | String | Identifier generated by the instance's SCIM endpoint. | +| `active` | Boolean | Indicates whether the identity is active (`true`) or should be suspended (`false`). | + diff --git a/translations/ja-JP/data/release-notes/enterprise-server/3-3/12.yml b/translations/ja-JP/data/release-notes/enterprise-server/3-3/12.yml index 6f96ac3ca8..e3c6861f08 100644 --- a/translations/ja-JP/data/release-notes/enterprise-server/3-3/12.yml +++ b/translations/ja-JP/data/release-notes/enterprise-server/3-3/12.yml @@ -20,3 +20,4 @@ sections: - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' + - The [file finder](/search-github/searching-on-github/finding-files-on-github) does not return any results. To restore functionality, reinstall the 3.3.12 patch release using a full upgrade package. For more information, see "[Upgrading GitHub Enterprise Server](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package)." \ No newline at end of file diff --git a/translations/log/msft-cn-resets.csv b/translations/log/msft-cn-resets.csv index b5e4f2d3ca..77b0429297 100644 --- a/translations/log/msft-cn-resets.csv +++ b/translations/log/msft-cn-resets.csv @@ -299,7 +299,7 @@ translations/zh-CN/content/admin/github-actions/getting-started-with-github-acti translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md,broken liquid tags -translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags +translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,rendering error translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md,broken liquid tags @@ -526,6 +526,7 @@ translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your- translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md,rendering error translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md,rendering error translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md,rendering error +translations/zh-CN/content/repositories/creating-and-managing-repositories/transferring-a-repository.md,broken liquid tags translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md,rendering error translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes.md,rendering error translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository.md,rendering error @@ -539,6 +540,7 @@ translations/zh-CN/content/repositories/releasing-projects-on-github/managing-re translations/zh-CN/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md,broken liquid tags translations/zh-CN/content/repositories/working-with-files/using-files/working-with-non-code-files.md,rendering error translations/zh-CN/content/rest/dependabot/index.md,broken liquid tags +translations/zh-CN/content/rest/enterprise-admin/scim.md,broken liquid tags translations/zh-CN/content/rest/guides/getting-started-with-the-rest-api.md,rendering error translations/zh-CN/content/rest/overview/other-authentication-methods.md,broken liquid tags translations/zh-CN/content/rest/overview/permissions-required-for-github-apps.md,rendering error diff --git a/translations/log/msft-es-resets.csv b/translations/log/msft-es-resets.csv index ad1fe1f196..9701a23801 100644 --- a/translations/log/msft-es-resets.csv +++ b/translations/log/msft-es-resets.csv @@ -301,6 +301,7 @@ translations/es-ES/content/actions/using-workflows/events-that-trigger-workflows translations/es-ES/content/actions/using-workflows/reusing-workflows.md,rendering error translations/es-ES/content/actions/using-workflows/sharing-workflows-secrets-and-runners-with-your-organization.md,rendering error translations/es-ES/content/actions/using-workflows/triggering-a-workflow.md,rendering error +translations/es-ES/content/actions/using-workflows/workflow-commands-for-github-actions.md,broken liquid tags translations/es-ES/content/actions/using-workflows/workflow-syntax-for-github-actions.md,rendering error translations/es-ES/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance.md,broken liquid tags translations/es-ES/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md,rendering error @@ -309,7 +310,7 @@ translations/es-ES/content/admin/enterprise-management/updating-the-virtual-mach translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md,rendering error translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error -translations/es-ES/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags +translations/es-ES/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,rendering error translations/es-ES/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags translations/es-ES/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/about-the-audit-log-for-your-enterprise.md,rendering error translations/es-ES/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md,rendering error @@ -518,6 +519,7 @@ translations/es-ES/content/repositories/configuring-branches-and-merges-in-your- translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md,rendering error translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md,rendering error translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md,rendering error +translations/es-ES/content/repositories/creating-and-managing-repositories/transferring-a-repository.md,broken liquid tags translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md,rendering error translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes.md,rendering error translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository.md,rendering error @@ -531,6 +533,7 @@ translations/es-ES/content/repositories/releasing-projects-on-github/managing-re translations/es-ES/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md,broken liquid tags translations/es-ES/content/repositories/working-with-files/using-files/working-with-non-code-files.md,rendering error translations/es-ES/content/rest/dependabot/index.md,broken liquid tags +translations/es-ES/content/rest/enterprise-admin/scim.md,broken liquid tags translations/es-ES/content/rest/guides/getting-started-with-the-rest-api.md,broken liquid tags translations/es-ES/content/rest/overview/permissions-required-for-github-apps.md,rendering error translations/es-ES/content/rest/repos/lfs.md,broken liquid tags diff --git a/translations/log/msft-ja-resets.csv b/translations/log/msft-ja-resets.csv index 1df450ac76..2b21018c94 100644 --- a/translations/log/msft-ja-resets.csv +++ b/translations/log/msft-ja-resets.csv @@ -299,6 +299,7 @@ translations/ja-JP/content/actions/using-workflows/events-that-trigger-workflows translations/ja-JP/content/actions/using-workflows/reusing-workflows.md,rendering error translations/ja-JP/content/actions/using-workflows/sharing-workflows-secrets-and-runners-with-your-organization.md,rendering error translations/ja-JP/content/actions/using-workflows/triggering-a-workflow.md,rendering error +translations/ja-JP/content/actions/using-workflows/workflow-commands-for-github-actions.md,broken liquid tags translations/ja-JP/content/actions/using-workflows/workflow-syntax-for-github-actions.md,rendering error translations/ja-JP/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance.md,broken liquid tags translations/ja-JP/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md,rendering error @@ -307,7 +308,7 @@ translations/ja-JP/content/admin/enterprise-management/updating-the-virtual-mach translations/ja-JP/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md,rendering error translations/ja-JP/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/ja-JP/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error -translations/ja-JP/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags +translations/ja-JP/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,rendering error translations/ja-JP/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags translations/ja-JP/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md,rendering error translations/ja-JP/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/about-the-audit-log-for-your-enterprise.md,rendering error @@ -510,6 +511,7 @@ translations/ja-JP/content/repositories/configuring-branches-and-merges-in-your- translations/ja-JP/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md,rendering error translations/ja-JP/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md,rendering error translations/ja-JP/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md,rendering error +translations/ja-JP/content/repositories/creating-and-managing-repositories/transferring-a-repository.md,broken liquid tags translations/ja-JP/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md,rendering error translations/ja-JP/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes.md,rendering error translations/ja-JP/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository.md,rendering error @@ -523,6 +525,7 @@ translations/ja-JP/content/repositories/releasing-projects-on-github/managing-re translations/ja-JP/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md,broken liquid tags translations/ja-JP/content/repositories/working-with-files/using-files/working-with-non-code-files.md,rendering error translations/ja-JP/content/rest/dependabot/index.md,broken liquid tags +translations/ja-JP/content/rest/enterprise-admin/scim.md,broken liquid tags translations/ja-JP/content/rest/guides/getting-started-with-the-rest-api.md,broken liquid tags translations/ja-JP/content/rest/overview/permissions-required-for-github-apps.md,rendering error translations/ja-JP/content/rest/repos/lfs.md,broken liquid tags diff --git a/translations/log/msft-pt-resets.csv b/translations/log/msft-pt-resets.csv index a446af695b..cd4a45228b 100644 --- a/translations/log/msft-pt-resets.csv +++ b/translations/log/msft-pt-resets.csv @@ -302,7 +302,7 @@ translations/pt-BR/content/admin/github-actions/getting-started-with-github-acti translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md,broken liquid tags -translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags +translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,rendering error translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md,broken liquid tags translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md,broken liquid tags @@ -518,6 +518,7 @@ translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your- translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md,rendering error translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md,rendering error translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md,rendering error +translations/pt-BR/content/repositories/creating-and-managing-repositories/transferring-a-repository.md,broken liquid tags translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md,rendering error translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes.md,rendering error translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository.md,rendering error @@ -531,6 +532,7 @@ translations/pt-BR/content/repositories/releasing-projects-on-github/managing-re translations/pt-BR/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md,broken liquid tags translations/pt-BR/content/repositories/working-with-files/using-files/working-with-non-code-files.md,rendering error translations/pt-BR/content/rest/dependabot/index.md,broken liquid tags +translations/pt-BR/content/rest/enterprise-admin/scim.md,broken liquid tags translations/pt-BR/content/rest/guides/getting-started-with-the-rest-api.md,broken liquid tags translations/pt-BR/content/rest/overview/other-authentication-methods.md,broken liquid tags translations/pt-BR/content/rest/overview/permissions-required-for-github-apps.md,rendering error diff --git a/translations/pt-BR/content/actions/using-workflows/workflow-commands-for-github-actions.md b/translations/pt-BR/content/actions/using-workflows/workflow-commands-for-github-actions.md index 34308f8f03..5a6de2d67d 100644 --- a/translations/pt-BR/content/actions/using-workflows/workflow-commands-for-github-actions.md +++ b/translations/pt-BR/content/actions/using-workflows/workflow-commands-for-github-actions.md @@ -59,7 +59,42 @@ Write-Output "::workflow-command parameter1={data},parameter2={data}::{command v ## Using workflow commands to access toolkit functions -The [actions/toolkit](https://github.com/actions/toolkit) includes a number of functions that can be executed as workflow commands. Use the `::` syntax to run the workflow commands within your YAML file; these commands are then sent to the runner over `stdout`. For example, instead of using code to set an output, as below: +The [actions/toolkit](https://github.com/actions/toolkit) includes a number of functions that can be executed as workflow commands. Use the `::` syntax to run the workflow commands within your YAML file; these commands are then sent to the runner over `stdout`. + +{%- ifversion actions-save-state-set-output-envs %} +For example, instead of using code to create an error annotation, as below: + +```javascript{:copy} +core.error('Missing semicolon', {file: 'app.js', startLine: 1}) +``` + +### Example: Creating an annotation for an error + +You can use the `error` command in your workflow to create the same error annotation: + +{% bash %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: echo "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: Write-Output "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endpowershell %} +{%- else %} +For example, instead of using code to set an output, as below: ```javascript{:copy} core.setOutput('SELECTED_COLOR', 'green'); @@ -97,6 +132,8 @@ You can use the `set-output` command in your workflow to set the same value: {% endpowershell %} +{% endif %} + The following table shows which toolkit functions are available within a workflow: | Toolkit function | Equivalent workflow command | @@ -113,14 +150,15 @@ The following table shows which toolkit functions are available within a workflo {%- ifversion actions-job-summaries %} | `core.summary` | Accessible using environment variable `GITHUB_STEP_SUMMARY` | {%- endif %} -| `core.saveState` | `save-state` | +| `core.saveState` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_STATE`{% else %}`save-state`{% endif %} | | `core.setCommandEcho` | `echo` | | `core.setFailed` | Used as a shortcut for `::error` and `exit 1` | -| `core.setOutput` | `set-output` | +| `core.setOutput` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_OUTPUT`{% else %}`set-output`{% endif %} | | `core.setSecret` | `add-mask` | | `core.startGroup` | `group` | | `core.warning` | `warning` | +{% ifversion actions-save-state-set-output-envs %}{% else %} ## Setting an output parameter Sets an action's output parameter. @@ -148,6 +186,7 @@ Write-Output "::set-output name=action_fruit::strawberry" ``` {% endpowershell %} +{% endif %} ## Setting a debug message @@ -504,17 +543,31 @@ Only the second `set-output` and `echo` workflow commands are included in the lo ## Sending values to the pre and post actions -You can use the `save-state` command to create environment variables for sharing with your workflow's `pre:` or `post:` actions. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. +{% ifversion actions-save-state-set-output-envs %}You can create environment variables for sharing with your workflow's `pre:` or `post:` actions by writing to the file located at `GITHUB_STATE`{% else %}You can use the `save-state` command to create environment variables for sharing with your workflow's `pre:` or `post:` actions{% endif %}. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. -If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where `save-state` was used. For more information on the `post:` action, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." +If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where {% ifversion actions-save-state-set-output-envs %}it was written to `GITHUB_STATE`{% else %}`save-state` was used{% endif %}. For more information on the `post:` action, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." -The `save-state` command can only be run within an action, and is not available to YAML files. The saved value is stored as an environment value with the `STATE_` prefix. +{% ifversion actions-save-state-set-output-envs %}The `GITHUB_STATE` file is only available within an action{% else %}The `save-state` command can only be run within an action, and is not available to YAML files{% endif %}. The saved value is stored as an environment value with the `STATE_` prefix. +{% ifversion actions-save-state-set-output-envs %} +This example uses JavaScript to write to the `GITHUB_STATE` file. The resulting environment variable is named `STATE_processID` with the value of `12345`: + +```javascript{:copy} +import * as fs from 'fs' +import * as os from 'os' + +fs.appendFileSync(process.env.GITHUB_STATE, `processID=12345${os.EOL}`, { + encoding: 'utf8' +}) +``` + +{% else %} This example uses JavaScript to run the `save-state` command. The resulting environment variable is named `STATE_processID` with the value of `12345`: ```javascript{:copy} console.log('::save-state name=processID::12345') ``` +{% endif %} The `STATE_processID` variable is then exclusively available to the cleanup script running under the `main` action. This example runs in `main` and uses JavaScript to display the value assigned to the `STATE_processID` environment variable: @@ -626,7 +679,7 @@ steps: ### Multiline strings -For multiline strings, you may use a delimiter with the following syntax. +For multiline strings, you may use a delimiter with the following syntax. ```{:copy} {name}<<{delimiter} @@ -673,6 +726,62 @@ steps: {% endpowershell %} +{% ifversion actions-save-state-set-output-envs %} +## Setting an output parameter + +Sets a step's output parameter. Note that the step will need an `id` to be defined to later retrieve the output value. + +{% bash %} + +```bash{:copy} +echo "{name}={value}" >> $GITHUB_OUTPUT +``` +{% endbash %} + +{% powershell %} + +```pwsh{:copy} +"{name}=value" >> $env:GITHUB_OUTPUT +``` + +{% endpowershell %} + +### Example + +{% bash %} + +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +{% raw %} +```yaml{:copy} + - name: Set color + id: random-color-generator + run: echo "SELECTED_COLOR=green" >> $GITHUB_OUTPUT + - name: Get color + run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +```yaml{:copy} + - name: Set color + id: random-color-generator + run: | + "SELECTED_COLOR=green" >> $env:GITHUB_OUTPUT + - name: Get color + run: Write-Output "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endpowershell %} +{% endif %} + {% ifversion actions-job-summaries %} ## Adding a job summary diff --git a/translations/pt-BR/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md b/translations/pt-BR/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md index fa49ebc9f5..65a19be5d0 100644 --- a/translations/pt-BR/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md +++ b/translations/pt-BR/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md @@ -116,7 +116,7 @@ After you enable {% data variables.product.prodname_dependabot_alerts %} for you {% data reusables.enterprise_management_console.save-settings %} 1. Click **Visit your instance**. -1. Configure self-hosted runners to create the pull requests that will update dependencies. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." +1. Configure dedicated self-hosted runners to create the pull requests that will update dependencies. This is required because the workflows use a specific runner label. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.github-connect-tab %} 1. Under "{% data variables.product.prodname_dependabot %}", to the right of "Users can easily upgrade to non-vulnerable open source code dependencies", click **Enable**. diff --git a/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 92fa29e8a5..870e5fd520 100644 --- a/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -66,7 +66,8 @@ If you are a site administrator for {% data variables.product.product_location % ```shell > Generating public/private ALGORITHM key pair. ``` -3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. +When you're prompted to "Enter a file in which to save the key", you can press **Enter** to accept the default file location. Please note that if you created SSH keys previously, ssh-keygen may ask you to rewrite another key, in which case we recommend creating a custom-named SSH key. To do so, type the default file location and replace id_ssh_keyname with your custom key name. + {% mac %} diff --git a/translations/pt-BR/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md b/translations/pt-BR/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md index 4e5d9b7094..d2ad2bdba2 100644 --- a/translations/pt-BR/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md +++ b/translations/pt-BR/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md @@ -88,7 +88,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} -1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Committers." +1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for organization-level data](/assets/images/help/billing/download-organization-GHAS-usage-data.png) #### At the enterprise-level @@ -96,7 +96,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. Under "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Commiters." +1. Under "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for enterprise-level data](/assets/images/help/billing/download-enterprise-GHAS-usage-data.png) ### Downloading {% data variables.product.prodname_advanced_security %} license usage information through the REST API diff --git a/translations/pt-BR/content/repositories/creating-and-managing-repositories/transferring-a-repository.md b/translations/pt-BR/content/repositories/creating-and-managing-repositories/transferring-a-repository.md index 1c28a12e96..92900222ad 100644 --- a/translations/pt-BR/content/repositories/creating-and-managing-repositories/transferring-a-repository.md +++ b/translations/pt-BR/content/repositories/creating-and-managing-repositories/transferring-a-repository.md @@ -1,6 +1,6 @@ --- -title: Transferir um repositório -intro: É possível transferir repositórios para outros usuários ou contas da organização. +title: Transferring a repository +intro: You can transfer repositories to other users or organization accounts. redirect_from: - /articles/about-repository-transfers - /move-a-repo @@ -21,64 +21,62 @@ versions: ghec: '*' topics: - Repositories -ms.openlocfilehash: 129e0a379bef1d621d08283ad5a2c5ba33c7c696 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147435265' --- -## Sobre transferências de repositório +## About repository transfers -Quando você transfere um repositório para um novo proprietário, ele pode administrar imediatamente o conteúdo do repositório, além de problemas, pull requests, versões, quadros de projeto e configurações. +When you transfer a repository to a new owner, they can immediately administer the repository's contents, issues, pull requests, releases, {% data variables.product.prodname_projects_v1 %}, and settings. -Pré-requisitos para transferências no repositório: -- Ao transferir um repositório que seja seu para outra conta pessoal, o novo proprietário receberá um email de confirmação.{% ifversion fpt or ghec %} O email de confirmação inclui instruções para aceitar a transferência. Se o novo proprietário não aceitar a transferência em um dia, o convite vai expirar.{% endif %} -- Para transferir um repositório que você possui para uma organização, é preciso ter permissão para criar um repositório na organização de destino. -- A conta de destino não deve ter um repositório com o mesmo nome ou uma bifurcação na mesma rede. -- O proprietário original do repositório é adicionado como colaborador no repositório transferido. Outros colaboradores do repositório transferido ficam intactos.{% ifversion ghes < 3.7 %} -- Os repositórios internos não podem ser transferidos.{% endif %} -- Bifurcações privadas não podem ser transferidas. +Prerequisites for repository transfers: +- When you transfer a repository that you own to another personal account, the new owner will receive a confirmation email.{% ifversion fpt or ghec %} The confirmation email includes instructions for accepting the transfer. If the new owner doesn't accept the transfer within one day, the invitation will expire.{% endif %} +- To transfer a repository that you own to an organization, you must have permission to create a repository in the target organization. +- The target account must not have a repository with the same name, or a fork in the same network. +- The original owner of the repository is added as a collaborator on the transferred repository. Other collaborators to the transferred repository remain intact.{% ifversion ghes < 3.7 %} +- Internal repositories can't be transferred.{% endif %} +- Private forks can't be transferred. -{% ifversion fpt or ghec %}Se você transferir um repositório privado para uma conta de usuário ou de organização do {% data variables.product.prodname_free_user %}, o repositório perderá o acesso aos recursos como branches protegidos e o {% data variables.product.prodname_pages %}. {% data reusables.gated-features.more-info %}{% endif %} +{% ifversion fpt or ghec %}If you transfer a private repository to a {% data variables.product.prodname_free_user %} user or organization account, the repository will lose access to features like protected branches and {% data variables.product.prodname_pages %}. {% data reusables.gated-features.more-info %}{% endif %} -### O que é transferido com um repositório? +### What's transferred with a repository? -Quando você transfere um repositório, também são transferidos problemas, pull requests, wiki, estrelas e inspetores dele. Se o repositório transferido contiver webhooks, serviços, segredos ou chaves de implantação, eles continuarão associados mesmo depois que a transferência for concluída. Informações do Git sobre commits, inclusive contribuições, são preservadas. Além disso: +When you transfer a repository, its issues, pull requests, wiki, stars, and watchers are also transferred. If the transferred repository contains webhooks, services, secrets, or deploy keys, they will remain associated after the transfer is complete. Git information about commits, including contributions, is preserved. In addition: -- Se o repositório transferido for uma bifurcação, continuará associado ao repositório upstream. -- Se o repositório transferido tiver alguma bifurcação, ela permanecerá associada ao repositório depois que a transferência for concluída. -- Se o repositório transferido usar {% data variables.large_files.product_name_long %}, todos os objetos {% data variables.large_files.product_name_short %} serão automaticamente movidos. Esta transferência ocorre em segundo plano. Portanto, se você tiver um número grande de objetos de {% data variables.large_files.product_name_short %} ou se os próprios objetos de {% data variables.large_files.product_name_short %} forem grandes, poderá levar um tempo para realizar a transferência.{% ifversion fpt or ghec %} Antes de transferir um repositório que usa {% data variables.large_files.product_name_short %}, certifique-se de que a conta de recebimento tenha pacotes de dados suficientes para armazenar os objetos de {% data variables.large_files.product_name_short %} que você vai se transferir. Para obter mais informações sobre como adicionar armazenamento para contas pessoais, confira "[Como fazer upgrade do {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)".{% endif %} -- Quando um repositório é transferido entre duas contas pessoais, as atribuições de problemas são mantidas intactas. Quando você transfere um repositório de uma conta pessoal para uma organização, os problemas atribuídos a integrantes da organização permanecem intactos e todos os outros responsáveis por problemas são destituídos. Somente proprietários da organização têm permissão para criar novas atribuições de problemas. Quando você transfere um repositório de uma organização para uma conta pessoal, são mantidos somente os problemas atribuídos ao proprietário do repositório. Todos os outros responsáveis por problemas são removidos. -- Se o repositório transferido contiver um site do {% data variables.product.prodname_pages %}, os links para o repositório do Git na web e por meio de atividade do Git serão redirecionados. No entanto, não redirecionamos o {% data variables.product.prodname_pages %} associado ao repositório. -- Todos os links para o local do repositório anterior são automaticamente redirecionados para o novo local. Quando você usa `git clone`, `git fetch` ou `git push` em um repositório transferido, esses comandos redirecionarão você para o novo local ou a URL do repositório. No entanto, para evitar confusão, recomendamos que qualquer clone local seja atualizado para apontar para a nova URL do repositório. Faça isso usando `git remote` na linha de comando: +- If the transferred repository is a fork, then it remains associated with the upstream repository. +- If the transferred repository has any forks, then those forks will remain associated with the repository after the transfer is complete. +- If the transferred repository uses {% data variables.large_files.product_name_long %}, all {% data variables.large_files.product_name_short %} objects are automatically moved. This transfer occurs in the background, so if you have a large number of {% data variables.large_files.product_name_short %} objects or if the {% data variables.large_files.product_name_short %} objects themselves are large, it may take some time for the transfer to occur.{% ifversion fpt or ghec %} Before you transfer a repository that uses {% data variables.large_files.product_name_short %}, make sure the receiving account has enough data packs to store the {% data variables.large_files.product_name_short %} objects you'll be moving over. For more information on adding storage for personal accounts, see "[Upgrading {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)."{% endif %} +- When a repository is transferred between two personal accounts, issue assignments are left intact. When you transfer a repository from a personal account to an organization, issues assigned to members in the organization remain intact, and all other issue assignees are cleared. Only owners in the organization are allowed to create new issue assignments. When you transfer a repository from an organization to a personal account, only issues assigned to the repository's owner are kept, and all other issue assignees are removed. +- If the transferred repository contains a {% data variables.product.prodname_pages %} site, then links to the Git repository on the Web and through Git activity are redirected. However, we don't redirect {% data variables.product.prodname_pages %} associated with the repository. +- All links to the previous repository location are automatically redirected to the new location. When you use `git clone`, `git fetch`, or `git push` on a transferred repository, these commands will redirect to the new repository location or URL. However, to avoid confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using `git remote` on the command line: ```shell - $ git remote set-url origin new_url + $ git remote set-url origin NEW_URL ``` -- Quando você transfere um repositório de uma organização para uma conta pessoal, os colaboradores somente leitura do repositório não serão transferidos. Isso acontece porque os colaboradores não podem ter acesso somente leitura a repositórios pertencentes a uma conta pessoal. Para obter mais informações sobre os níveis de permissão do repositório, confira "[Níveis de permissão para um repositório da conta pessoal](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" e "[Funções de repositório para uma organização](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)".{% ifversion fpt or ghec %} -- Os patrocinadores que têm acesso ao repositório por meio de um nível de patrocínio podem ser afetados. Para obter mais informações, confira "[Como adicionar um repositório a uma camada de patrocínio](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)".{% endif %} +- When you transfer a repository from an organization to a personal account, the repository's read-only collaborators will not be transferred. This is because collaborators can't have read-only access to repositories owned by a personal account. For more information about repository permission levels, see "[Permission levels for a personal account repository](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" and "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)."{% ifversion fpt or ghec %} +- Sponsors who have access to the repository through a sponsorship tier may be affected. For more information, see "[Adding a repository to a sponsorship tier](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)".{% endif %} -Para obter mais informações, confira "[Como gerenciar repositórios remotos](/github/getting-started-with-github/managing-remote-repositories)". +For more information, see "[Managing remote repositories](/github/getting-started-with-github/managing-remote-repositories)." -### Transferências de repositório e organizações +### Repository transfers and organizations -Para transferir repositórios para uma organização, é preciso ter permissões de criação de repositórios na organização recebedora. Se os proprietários da organização tiverem desabilitado a criação de repositórios por integrantes da organização, somente proprietários da organização poderão transferir repositórios dentro ou fora da organização. +To transfer repositories to an organization, you must have repository creation permissions in the receiving organization. If organization owners have disabled repository creation by organization members, only organization owners can transfer repositories out of or into the organization. -Depois que um repositório for transferido para uma organização, os privilégios de associação padrão e as configurações padrão de permissão de repositório da organização se aplicarão ao repositório transferido. +Once a repository is transferred to an organization, the organization's default repository permission settings and default membership privileges will apply to the transferred repository. -## Transferir um repositório pertencente à sua conta pessoal +## Transferring a repository owned by your personal account -É possível transferir seu repositório para qualquer conta pessoal que aceite transferência de repositório. Quando um repositório é transferido entre duas contas pessoais, o proprietário e os colaboradores do repositório original são automaticamente adicionados como colaboradores ao novo repositório. +You can transfer your repository to any personal account that accepts your repository transfer. When a repository is transferred between two personal accounts, the original repository owner and collaborators are automatically added as collaborators to the new repository. -{% ifversion fpt or ghec %}Se você publicou um site {% data variables.product.prodname_pages %} em um repositório privado e adicionou um domínio personalizado, antes de transferir o repositório, você deverá remover ou atualizar seus registros DNS para evitar o risco de tomada de um domínio. Para obter mais informações, confira "[Como configurar um domínio personalizado para seu site do {% data variables.product.prodname_pages %}](/articles/managing-a-custom-domain-for-your-github-pages-site)".{% endif %} +{% ifversion fpt or ghec %}If you published a {% data variables.product.prodname_pages %} site in a private repository and added a custom domain, before transferring the repository, you may want to remove or update your DNS records to avoid the risk of a domain takeover. For more information, see "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)."{% endif %} -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} -## Transferir um repositório pertencente à organização +## Transferring a repository owned by your organization -Se você tiver permissões de proprietário em uma organização ou permissões de administrador para um dos repositórios dela, poderá transferir um repositório pertencente à organização para sua conta pessoal ou para outra organização. +If you have owner permissions in an organization or admin permissions to one of its repositories, you can transfer a repository owned by your organization to your personal account or to another organization. -1. Entre na sua conta pessoal que tenha permissões de proprietário ou de administrador na organização proprietária do repositório. -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +1. Sign into your personal account that has admin or owner permissions in the organization that owns the repository. +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} diff --git a/translations/pt-BR/content/rest/enterprise-admin/scim.md b/translations/pt-BR/content/rest/enterprise-admin/scim.md index e89b5e92b3..a95eb461b5 100644 --- a/translations/pt-BR/content/rest/enterprise-admin/scim.md +++ b/translations/pt-BR/content/rest/enterprise-admin/scim.md @@ -1,16 +1,77 @@ --- title: SCIM -intro: '' +intro: 'You can automate user creation and team memberships using the SCIM API.' versions: ghes: '>=3.6' topics: - API miniTocMaxHeadingLevel: 3 -ms.openlocfilehash: 797973c356a278bc82e55a9e2a6abab391be69a0 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147060871' --- +{% note %} + +**Note:** The SCIM API for {% data variables.product.product_name %} is currently in private beta and subject to change. To access the private beta and test the API, contact your account manager on {% data variables.contact.contact_enterprise_sales %}. + +{% endnote %} + +## About the SCIM API + +{% data variables.product.product_name %} provides a SCIM API for use by SCIM-enabled Identity Providers (IdPs). An integration on the IdP can use the API to automatically provision, manage, or deprovision user accounts on a {% data variables.product.product_name %} instance that uses SAML single sign-on (SSO) for authentication. For more information about SAML SSO, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)." + +The SCIM API is based on SCIM 2.0. For more information, see the [specification](https://www.simplecloud.info/#Specification). + +### SCIM endpoint URLs + +An IdP can use the following root URL to communicate with the SCIM API for a {% data variables.product.product_name %} instance. + +``` +{% data variables.product.api_url_code %}/scim/v2/ +``` + +Endpoint URLs for the SCIM API are case-sensitive. For example, the first letter in the `Users` endpoint must be capitalized. + +```shell +GET /scim/v2/Users/{scim_user_id} +``` + +### Authenticating calls to the SCIM API + +The SCIM integration on the IdP performs actions on behalf of an enterprise owner for the {% data variables.product.product_name %} instance. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners)." + +To authenticate requests to the API, the person who configures SCIM on the IdP must use a personal access token (classic) with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about personal access tokens (classic), see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". + +{% note %} + +**Note:** Enterprise owners must generate and use a personal access token (classic) for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}Fine-grained personal access tokens and {% endif %}GitHub app callers are not supported at this time. + +{% endnote %} + +### About mapping of SAML and SCIM data + +The {% data variables.product.product_name %} instance links each user who authenticates successfully with SAML SSO to a SCIM identity. To link the identities successfully, the SAML IdP and the SCIM integration must use matching SAML `NameID` and SCIM `userName` values for each user. + +{% ifversion ghes > 3.7 %} +{% note %} + +**Note:** If the {% data variables.product.product_name %} uses Azure AD as a SAML IdP, {% data variables.product.product_name %} will also check the SCIM `externalId` claim and SAML `http://schemas.microsoft.com/identity/claims/objectidentifier` claim to match users first, instead of using `NameID` and `userName`. + +{% endnote %} +{% endif %} + +### Supported SCIM user attributes + +The SCIM API's `User` endpoints support the following attributes within a request's parameters. + +| Name | Type | Description | +| :- | :- | :- | +| `displayName` | String | Human-readable name for a user. | +| `name.formatted` | String | The user's full name, including all middle names, titles, and suffixes, formatted for display. +| `name.givenName` | String | The first name of the user. | +| `name.familyName` | String | The last name of the user. | +| `userName` | String | The username for the user, generated by the IdP. Undergoes [normalization](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#about-username-normalization) before being used. +| `emails` | Array | List of the user's emails. | +| `roles` | Array | List of the user's roles. | +| `externalId` | String | This identifier is generated by an IdP provider. You can find the `externalId` for a user either on the IdP, or by using the [List SCIM provisioned identities](#list-scim-provisioned-identities-for-an-enterprise) endpoint and filtering on other known attributes, such as a user's username or email address on the {% data variables.product.product_name %} instance. | +| `id` | String | Identifier generated by the instance's SCIM endpoint. | +| `active` | Boolean | Indicates whether the identity is active (`true`) or should be suspended (`false`). | + diff --git a/translations/pt-BR/data/release-notes/enterprise-server/3-3/12.yml b/translations/pt-BR/data/release-notes/enterprise-server/3-3/12.yml index 6f96ac3ca8..e3c6861f08 100644 --- a/translations/pt-BR/data/release-notes/enterprise-server/3-3/12.yml +++ b/translations/pt-BR/data/release-notes/enterprise-server/3-3/12.yml @@ -20,3 +20,4 @@ sections: - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' + - The [file finder](/search-github/searching-on-github/finding-files-on-github) does not return any results. To restore functionality, reinstall the 3.3.12 patch release using a full upgrade package. For more information, see "[Upgrading GitHub Enterprise Server](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package)." \ No newline at end of file diff --git a/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md b/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md index 34308f8f03..5a6de2d67d 100644 --- a/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md +++ b/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md @@ -59,7 +59,42 @@ Write-Output "::workflow-command parameter1={data},parameter2={data}::{command v ## Using workflow commands to access toolkit functions -The [actions/toolkit](https://github.com/actions/toolkit) includes a number of functions that can be executed as workflow commands. Use the `::` syntax to run the workflow commands within your YAML file; these commands are then sent to the runner over `stdout`. For example, instead of using code to set an output, as below: +The [actions/toolkit](https://github.com/actions/toolkit) includes a number of functions that can be executed as workflow commands. Use the `::` syntax to run the workflow commands within your YAML file; these commands are then sent to the runner over `stdout`. + +{%- ifversion actions-save-state-set-output-envs %} +For example, instead of using code to create an error annotation, as below: + +```javascript{:copy} +core.error('Missing semicolon', {file: 'app.js', startLine: 1}) +``` + +### Example: Creating an annotation for an error + +You can use the `error` command in your workflow to create the same error annotation: + +{% bash %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: echo "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +```yaml{:copy} + - name: Create annotation for build error + run: Write-Output "::error file=app.js,line=1::Missing semicolon" +``` +{% endraw %} + +{% endpowershell %} +{%- else %} +For example, instead of using code to set an output, as below: ```javascript{:copy} core.setOutput('SELECTED_COLOR', 'green'); @@ -97,6 +132,8 @@ You can use the `set-output` command in your workflow to set the same value: {% endpowershell %} +{% endif %} + The following table shows which toolkit functions are available within a workflow: | Toolkit function | Equivalent workflow command | @@ -113,14 +150,15 @@ The following table shows which toolkit functions are available within a workflo {%- ifversion actions-job-summaries %} | `core.summary` | Accessible using environment variable `GITHUB_STEP_SUMMARY` | {%- endif %} -| `core.saveState` | `save-state` | +| `core.saveState` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_STATE`{% else %}`save-state`{% endif %} | | `core.setCommandEcho` | `echo` | | `core.setFailed` | Used as a shortcut for `::error` and `exit 1` | -| `core.setOutput` | `set-output` | +| `core.setOutput` | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_OUTPUT`{% else %}`set-output`{% endif %} | | `core.setSecret` | `add-mask` | | `core.startGroup` | `group` | | `core.warning` | `warning` | +{% ifversion actions-save-state-set-output-envs %}{% else %} ## Setting an output parameter Sets an action's output parameter. @@ -148,6 +186,7 @@ Write-Output "::set-output name=action_fruit::strawberry" ``` {% endpowershell %} +{% endif %} ## Setting a debug message @@ -504,17 +543,31 @@ Only the second `set-output` and `echo` workflow commands are included in the lo ## Sending values to the pre and post actions -You can use the `save-state` command to create environment variables for sharing with your workflow's `pre:` or `post:` actions. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. +{% ifversion actions-save-state-set-output-envs %}You can create environment variables for sharing with your workflow's `pre:` or `post:` actions by writing to the file located at `GITHUB_STATE`{% else %}You can use the `save-state` command to create environment variables for sharing with your workflow's `pre:` or `post:` actions{% endif %}. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. -If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where `save-state` was used. For more information on the `post:` action, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." +If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where {% ifversion actions-save-state-set-output-envs %}it was written to `GITHUB_STATE`{% else %}`save-state` was used{% endif %}. For more information on the `post:` action, see "[Metadata syntax for {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." -The `save-state` command can only be run within an action, and is not available to YAML files. The saved value is stored as an environment value with the `STATE_` prefix. +{% ifversion actions-save-state-set-output-envs %}The `GITHUB_STATE` file is only available within an action{% else %}The `save-state` command can only be run within an action, and is not available to YAML files{% endif %}. The saved value is stored as an environment value with the `STATE_` prefix. +{% ifversion actions-save-state-set-output-envs %} +This example uses JavaScript to write to the `GITHUB_STATE` file. The resulting environment variable is named `STATE_processID` with the value of `12345`: + +```javascript{:copy} +import * as fs from 'fs' +import * as os from 'os' + +fs.appendFileSync(process.env.GITHUB_STATE, `processID=12345${os.EOL}`, { + encoding: 'utf8' +}) +``` + +{% else %} This example uses JavaScript to run the `save-state` command. The resulting environment variable is named `STATE_processID` with the value of `12345`: ```javascript{:copy} console.log('::save-state name=processID::12345') ``` +{% endif %} The `STATE_processID` variable is then exclusively available to the cleanup script running under the `main` action. This example runs in `main` and uses JavaScript to display the value assigned to the `STATE_processID` environment variable: @@ -626,7 +679,7 @@ steps: ### Multiline strings -For multiline strings, you may use a delimiter with the following syntax. +For multiline strings, you may use a delimiter with the following syntax. ```{:copy} {name}<<{delimiter} @@ -673,6 +726,62 @@ steps: {% endpowershell %} +{% ifversion actions-save-state-set-output-envs %} +## Setting an output parameter + +Sets a step's output parameter. Note that the step will need an `id` to be defined to later retrieve the output value. + +{% bash %} + +```bash{:copy} +echo "{name}={value}" >> $GITHUB_OUTPUT +``` +{% endbash %} + +{% powershell %} + +```pwsh{:copy} +"{name}=value" >> $env:GITHUB_OUTPUT +``` + +{% endpowershell %} + +### Example + +{% bash %} + +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +{% raw %} +```yaml{:copy} + - name: Set color + id: random-color-generator + run: echo "SELECTED_COLOR=green" >> $GITHUB_OUTPUT + - name: Get color + run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endbash %} + +{% powershell %} + +{% raw %} +This example demonstrates how to set the `SELECTED_COLOR` output parameter and later retrieve it: + +```yaml{:copy} + - name: Set color + id: random-color-generator + run: | + "SELECTED_COLOR=green" >> $env:GITHUB_OUTPUT + - name: Get color + run: Write-Output "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}" +``` +{% endraw %} + +{% endpowershell %} +{% endif %} + {% ifversion actions-job-summaries %} ## Adding a job summary diff --git a/translations/zh-CN/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md b/translations/zh-CN/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md index fa49ebc9f5..65a19be5d0 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md @@ -116,7 +116,7 @@ After you enable {% data variables.product.prodname_dependabot_alerts %} for you {% data reusables.enterprise_management_console.save-settings %} 1. Click **Visit your instance**. -1. Configure self-hosted runners to create the pull requests that will update dependencies. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." +1. Configure dedicated self-hosted runners to create the pull requests that will update dependencies. This is required because the workflows use a specific runner label. For more information, see "[Managing self-hosted runners for {% data variables.product.prodname_dependabot_updates %} on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.github-connect-tab %} 1. Under "{% data variables.product.prodname_dependabot %}", to the right of "Users can easily upgrade to non-vulnerable open source code dependencies", click **Enable**. diff --git a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 92fa29e8a5..870e5fd520 100644 --- a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -66,7 +66,8 @@ If you are a site administrator for {% data variables.product.product_location % ```shell > Generating public/private ALGORITHM key pair. ``` -3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. +When you're prompted to "Enter a file in which to save the key", you can press **Enter** to accept the default file location. Please note that if you created SSH keys previously, ssh-keygen may ask you to rewrite another key, in which case we recommend creating a custom-named SSH key. To do so, type the default file location and replace id_ssh_keyname with your custom key name. + {% mac %} diff --git a/translations/zh-CN/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md b/translations/zh-CN/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md index 4e5d9b7094..d2ad2bdba2 100644 --- a/translations/zh-CN/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md +++ b/translations/zh-CN/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md @@ -88,7 +88,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.billing_plans %} -1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Committers." +1. Underneath "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for organization-level data](/assets/images/help/billing/download-organization-GHAS-usage-data.png) #### At the enterprise-level @@ -96,7 +96,7 @@ You can download the {% data variables.product.prodname_advanced_security %} lic {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. Under "{% data variables.product.prodname_GH_advanced_security %}," click {% octicon "download" aria-label="The download icon" %} next to "Commiters." +1. Under "{% data variables.product.prodname_GH_advanced_security %}," click **{% octicon "download" aria-label="The download icon" %} CSV report** next to "Committers." ![Download button for enterprise-level data](/assets/images/help/billing/download-enterprise-GHAS-usage-data.png) ### Downloading {% data variables.product.prodname_advanced_security %} license usage information through the REST API diff --git a/translations/zh-CN/content/repositories/creating-and-managing-repositories/transferring-a-repository.md b/translations/zh-CN/content/repositories/creating-and-managing-repositories/transferring-a-repository.md index 83648d8450..92900222ad 100644 --- a/translations/zh-CN/content/repositories/creating-and-managing-repositories/transferring-a-repository.md +++ b/translations/zh-CN/content/repositories/creating-and-managing-repositories/transferring-a-repository.md @@ -1,6 +1,6 @@ --- -title: 转让仓库 -intro: 您可以将仓库转让给其他用户或组织帐户。 +title: Transferring a repository +intro: You can transfer repositories to other users or organization accounts. redirect_from: - /articles/about-repository-transfers - /move-a-repo @@ -21,64 +21,62 @@ versions: ghec: '*' topics: - Repositories -ms.openlocfilehash: 129e0a379bef1d621d08283ad5a2c5ba33c7c696 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147435266' --- -## 关于仓库转让 +## About repository transfers -当您将仓库转让给新所有者时,他们可以立即管理仓库的内容、议题、拉取请求、版本、项目板和设置。 +When you transfer a repository to a new owner, they can immediately administer the repository's contents, issues, pull requests, releases, {% data variables.product.prodname_projects_v1 %}, and settings. -存储库传输的先决条件: -- 当你将你拥有的存储库转让给另一个个人帐户时,新所有者将收到一封确认电子邮件。{% ifversion fpt or ghec %} 确认电子邮件包含接受转让的说明。 如果新所有者在一天之内没有接受转让,则邀请将过期。{% endif %} -- 要将您拥有的仓库转让给一个组织,您必须拥有在目标组织中创建仓库的权限。 -- 目标帐户不得具有相同名称的仓库,或位于同一网络中的复刻。 -- 仓库原来的所有者将添加为已转让仓库的协作者。 转移的存储库的其他协作者保持不变。{% ifversion ghes < 3.7 %} -- 无法转移内部仓库。{% endif %} -- 私有复刻无法进行转让。 +Prerequisites for repository transfers: +- When you transfer a repository that you own to another personal account, the new owner will receive a confirmation email.{% ifversion fpt or ghec %} The confirmation email includes instructions for accepting the transfer. If the new owner doesn't accept the transfer within one day, the invitation will expire.{% endif %} +- To transfer a repository that you own to an organization, you must have permission to create a repository in the target organization. +- The target account must not have a repository with the same name, or a fork in the same network. +- The original owner of the repository is added as a collaborator on the transferred repository. Other collaborators to the transferred repository remain intact.{% ifversion ghes < 3.7 %} +- Internal repositories can't be transferred.{% endif %} +- Private forks can't be transferred. -{% ifversion fpt or ghec %}如果将专用存储库转移到 {% data variables.product.prodname_free_user %} 用户或组织帐户,该存储库将无法访问受保护的分支和 {% data variables.product.prodname_pages %} 等功能。 {% data reusables.gated-features.more-info %}{% endif %} +{% ifversion fpt or ghec %}If you transfer a private repository to a {% data variables.product.prodname_free_user %} user or organization account, the repository will lose access to features like protected branches and {% data variables.product.prodname_pages %}. {% data reusables.gated-features.more-info %}{% endif %} -### 随仓库一起转让的有哪些内容? +### What's transferred with a repository? -当您转让仓库时,其议题、拉取请求、wiki、星号和查看者也将转让。 如果转让的仓库包含 web 挂钩、服务、密码或部署密钥,它们将在转让完成后保持关联状态。 关于提交的 Git 信息(包括贡献)都将保留。 此外: +When you transfer a repository, its issues, pull requests, wiki, stars, and watchers are also transferred. If the transferred repository contains webhooks, services, secrets, or deploy keys, they will remain associated after the transfer is complete. Git information about commits, including contributions, is preserved. In addition: -- 如果转让的仓库是复刻,则它仍与上游仓库关联。 -- 如果转让的仓库有任何复刻,则这些复刻在转让完成后仍与该仓库关联。 -- 如果转让的仓库使用 {% data variables.large_files.product_name_long %},则所有 {% data variables.large_files.product_name_short %} 对象均自动移动。 此转移在后台进行,因此如果您有大量的 {% data variables.large_files.product_name_short %} 对象或者如果 {% data variables.large_files.product_name_short %} 对象本身很大,则进行转移可能需要一些时间。{% ifversion fpt or ghec %}转让使用 {% data variables.large_files.product_name_short %} 的仓库之前,确保接收帐户有足够的数据包用来存储您将移动的 {% data variables.large_files.product_name_short %} 对象。 有关为个人帐户添加存储的详细信息,请参阅“[升级 {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)”。{% endif %} -- 存储库在两个个人帐户之间转让时,议题分配保持不变。 将存储库从个人帐户转让给组织时,分配给组织中该成员的议题保持不变,所有其他议题受理人都将被清除。 只允许组织中的所有者创建新的议题分配。 将存储库从组织转让给个人帐户时,只有分配给存储库所有者的议题保留,所有其他议题受理人都将被清除。 -- 如果转让的仓库包含 {% data variables.product.prodname_pages %} 站点,则指向 Web 上 Git 仓库和通过 Git 活动的链接将重定向。 不过,我们不会重定向与仓库关联的 {% data variables.product.prodname_pages %}。 -- 指向以前仓库位置的所有链接均自动重定向到新位置。 在转移的存储库上使用 `git clone`、`git fetch` 或 `git push` 时,这些命令将重定向到新的存储库位置或 URL。 不过,为了避免混淆,我们强烈建议将任何现有的本地克隆副本更新为指向新仓库 URL。 可以通过在命令行上使用 `git remote` 完成此操作: +- If the transferred repository is a fork, then it remains associated with the upstream repository. +- If the transferred repository has any forks, then those forks will remain associated with the repository after the transfer is complete. +- If the transferred repository uses {% data variables.large_files.product_name_long %}, all {% data variables.large_files.product_name_short %} objects are automatically moved. This transfer occurs in the background, so if you have a large number of {% data variables.large_files.product_name_short %} objects or if the {% data variables.large_files.product_name_short %} objects themselves are large, it may take some time for the transfer to occur.{% ifversion fpt or ghec %} Before you transfer a repository that uses {% data variables.large_files.product_name_short %}, make sure the receiving account has enough data packs to store the {% data variables.large_files.product_name_short %} objects you'll be moving over. For more information on adding storage for personal accounts, see "[Upgrading {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage)."{% endif %} +- When a repository is transferred between two personal accounts, issue assignments are left intact. When you transfer a repository from a personal account to an organization, issues assigned to members in the organization remain intact, and all other issue assignees are cleared. Only owners in the organization are allowed to create new issue assignments. When you transfer a repository from an organization to a personal account, only issues assigned to the repository's owner are kept, and all other issue assignees are removed. +- If the transferred repository contains a {% data variables.product.prodname_pages %} site, then links to the Git repository on the Web and through Git activity are redirected. However, we don't redirect {% data variables.product.prodname_pages %} associated with the repository. +- All links to the previous repository location are automatically redirected to the new location. When you use `git clone`, `git fetch`, or `git push` on a transferred repository, these commands will redirect to the new repository location or URL. However, to avoid confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using `git remote` on the command line: ```shell - $ git remote set-url origin new_url + $ git remote set-url origin NEW_URL ``` -- 将存储库从组织转让给个人帐户时,不会转让存储库的只读协作者。 这是因为协作者不能对个人帐户拥有的存储库具有只读权限。 有关存储库权限级别的详细信息,请参阅“[个人帐户存储库的权限级别](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)”和“[组织的存储库角色](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)”。{% ifversion fpt or ghec %} -- 有权通过赞助层访问存储库的发起人可能会受到影响。 有关详细信息,请参阅“[将存储库添加到赞助层](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)”。{% endif %} +- When you transfer a repository from an organization to a personal account, the repository's read-only collaborators will not be transferred. This is because collaborators can't have read-only access to repositories owned by a personal account. For more information about repository permission levels, see "[Permission levels for a personal account repository](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" and "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)."{% ifversion fpt or ghec %} +- Sponsors who have access to the repository through a sponsorship tier may be affected. For more information, see "[Adding a repository to a sponsorship tier](/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-sponsorship-tiers#adding-a-repository-to-a-sponsorship-tier)".{% endif %} -有关详细信息,请参阅“[管理远程存储库](/github/getting-started-with-github/managing-remote-repositories)”。 +For more information, see "[Managing remote repositories](/github/getting-started-with-github/managing-remote-repositories)." -### 仓库转让和组织 +### Repository transfers and organizations -要将仓库转让给组织,您必须在接收组织中具有仓库创建权限。 如果组织所有者已禁止组织成员创建仓库,则只有组织所有者能够转让仓库出入组织。 +To transfer repositories to an organization, you must have repository creation permissions in the receiving organization. If organization owners have disabled repository creation by organization members, only organization owners can transfer repositories out of or into the organization. -将仓库转让给组织后,组织的默认仓库权限设置和默认成员资格权限将应用到转让的仓库。 +Once a repository is transferred to an organization, the organization's default repository permission settings and default membership privileges will apply to the transferred repository. -## 转让您的个人帐户拥有的仓库 +## Transferring a repository owned by your personal account -你可以将存储库转让给接受存储库转让的任何个人帐户。 在两个个人帐户之间转让存储库时,原来的存储库所有者和协作者将自动添加为新存储库的协作者。 +You can transfer your repository to any personal account that accepts your repository transfer. When a repository is transferred between two personal accounts, the original repository owner and collaborators are automatically added as collaborators to the new repository. -{% ifversion fpt or ghec %}如果您在私有仓库中发布了 {% data variables.product.prodname_pages %} 站点并添加了自定义域,则转让仓库之前,您可能想要删除或更新 DNS 记录以避免域接管风险。 有关详细信息,请参阅“[为 {% data variables.product.prodname_pages %} 站点管理自定义域](/articles/managing-a-custom-domain-for-your-github-pages-site)”。{% endif %} +{% ifversion fpt or ghec %}If you published a {% data variables.product.prodname_pages %} site in a private repository and added a custom domain, before transferring the repository, you may want to remove or update your DNS records to avoid the risk of a domain takeover. For more information, see "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)."{% endif %} -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} -## 转让您的组织拥有的仓库 +## Transferring a repository owned by your organization -如果你具有组织中的所有者权限或组织其中一个存储库的管理员权限,你可以将组织拥有的存储库转让给个人帐户或其他组织。 +If you have owner permissions in an organization or admin permissions to one of its repositories, you can transfer a repository owned by your organization to your personal account or to another organization. -1. 在拥有存储库的组织中登录你具有管理员或所有者权限的个人帐户。 -{% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.transfer-repository-steps %} +1. Sign into your personal account that has admin or owner permissions in the organization that owns the repository. +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.transfer-repository-steps %} diff --git a/translations/zh-CN/content/rest/enterprise-admin/scim.md b/translations/zh-CN/content/rest/enterprise-admin/scim.md index f0eaaae4bd..a95eb461b5 100644 --- a/translations/zh-CN/content/rest/enterprise-admin/scim.md +++ b/translations/zh-CN/content/rest/enterprise-admin/scim.md @@ -1,16 +1,77 @@ --- title: SCIM -intro: '' +intro: 'You can automate user creation and team memberships using the SCIM API.' versions: ghes: '>=3.6' topics: - API miniTocMaxHeadingLevel: 3 -ms.openlocfilehash: 797973c356a278bc82e55a9e2a6abab391be69a0 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147060872' --- +{% note %} + +**Note:** The SCIM API for {% data variables.product.product_name %} is currently in private beta and subject to change. To access the private beta and test the API, contact your account manager on {% data variables.contact.contact_enterprise_sales %}. + +{% endnote %} + +## About the SCIM API + +{% data variables.product.product_name %} provides a SCIM API for use by SCIM-enabled Identity Providers (IdPs). An integration on the IdP can use the API to automatically provision, manage, or deprovision user accounts on a {% data variables.product.product_name %} instance that uses SAML single sign-on (SSO) for authentication. For more information about SAML SSO, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)." + +The SCIM API is based on SCIM 2.0. For more information, see the [specification](https://www.simplecloud.info/#Specification). + +### SCIM endpoint URLs + +An IdP can use the following root URL to communicate with the SCIM API for a {% data variables.product.product_name %} instance. + +``` +{% data variables.product.api_url_code %}/scim/v2/ +``` + +Endpoint URLs for the SCIM API are case-sensitive. For example, the first letter in the `Users` endpoint must be capitalized. + +```shell +GET /scim/v2/Users/{scim_user_id} +``` + +### Authenticating calls to the SCIM API + +The SCIM integration on the IdP performs actions on behalf of an enterprise owner for the {% data variables.product.product_name %} instance. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners)." + +To authenticate requests to the API, the person who configures SCIM on the IdP must use a personal access token (classic) with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about personal access tokens (classic), see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". + +{% note %} + +**Note:** Enterprise owners must generate and use a personal access token (classic) for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}Fine-grained personal access tokens and {% endif %}GitHub app callers are not supported at this time. + +{% endnote %} + +### About mapping of SAML and SCIM data + +The {% data variables.product.product_name %} instance links each user who authenticates successfully with SAML SSO to a SCIM identity. To link the identities successfully, the SAML IdP and the SCIM integration must use matching SAML `NameID` and SCIM `userName` values for each user. + +{% ifversion ghes > 3.7 %} +{% note %} + +**Note:** If the {% data variables.product.product_name %} uses Azure AD as a SAML IdP, {% data variables.product.product_name %} will also check the SCIM `externalId` claim and SAML `http://schemas.microsoft.com/identity/claims/objectidentifier` claim to match users first, instead of using `NameID` and `userName`. + +{% endnote %} +{% endif %} + +### Supported SCIM user attributes + +The SCIM API's `User` endpoints support the following attributes within a request's parameters. + +| Name | Type | Description | +| :- | :- | :- | +| `displayName` | String | Human-readable name for a user. | +| `name.formatted` | String | The user's full name, including all middle names, titles, and suffixes, formatted for display. +| `name.givenName` | String | The first name of the user. | +| `name.familyName` | String | The last name of the user. | +| `userName` | String | The username for the user, generated by the IdP. Undergoes [normalization](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#about-username-normalization) before being used. +| `emails` | Array | List of the user's emails. | +| `roles` | Array | List of the user's roles. | +| `externalId` | String | This identifier is generated by an IdP provider. You can find the `externalId` for a user either on the IdP, or by using the [List SCIM provisioned identities](#list-scim-provisioned-identities-for-an-enterprise) endpoint and filtering on other known attributes, such as a user's username or email address on the {% data variables.product.product_name %} instance. | +| `id` | String | Identifier generated by the instance's SCIM endpoint. | +| `active` | Boolean | Indicates whether the identity is active (`true`) or should be suspended (`false`). | + diff --git a/translations/zh-CN/data/release-notes/enterprise-server/3-3/12.yml b/translations/zh-CN/data/release-notes/enterprise-server/3-3/12.yml index 6f96ac3ca8..e3c6861f08 100644 --- a/translations/zh-CN/data/release-notes/enterprise-server/3-3/12.yml +++ b/translations/zh-CN/data/release-notes/enterprise-server/3-3/12.yml @@ -20,3 +20,4 @@ sections: - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' + - The [file finder](/search-github/searching-on-github/finding-files-on-github) does not return any results. To restore functionality, reinstall the 3.3.12 patch release using a full upgrade package. For more information, see "[Upgrading GitHub Enterprise Server](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package)." \ No newline at end of file