From be8a1b84ab6d64ce0688cfc20c3d7a1a2befc2f5 Mon Sep 17 00:00:00 2001 From: Ayush Shukla Date: Thu, 25 Aug 2022 20:20:10 +0530 Subject: [PATCH 01/20] Fix docs for adding ssh key for commit signing The config command expects a path to the private/public key and needs to be prefixed with `key::` when using the public key directly ref: https://git-scm.com/docs/git-config#Documentation/git-config.txt-usersigningKey --- data/reusables/gpg/paste-ssh-public-key.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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' + ``` From 546f9374c396e0bfb58a1bc4801b39956d32a042 Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Sun, 2 Oct 2022 14:08:18 +0530 Subject: [PATCH 02/20] Change keys nomenclature according to guidelines --- content/get-started/using-github/keyboard-shortcuts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/get-started/using-github/keyboard-shortcuts.md b/content/get-started/using-github/keyboard-shortcuts.md index bbd743e04a..ef9fa51a21 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 From cd5fee98220066e56551e6ac56bd03d473db9e3a Mon Sep 17 00:00:00 2001 From: scrazzz Date: Fri, 7 Oct 2022 23:02:01 +0300 Subject: [PATCH 03/20] Update securing-your-github-pages-site-with-https.md --- .../securing-your-github-pages-site-with-https.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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. From 52cdba701906c0c951f0a3ab4bac6f4a9f3159ab Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Sat, 8 Oct 2022 16:43:25 +1000 Subject: [PATCH 04/20] Fix hyperlink URL pointing to stale/non-existent anchor `#self-hosted-runner-security-with-public-repositories`. --- .../security-guides/security-hardening-for-github-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)." From 91f676990c4d00f248059e36e6d41b7387cb9caf Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 11 Oct 2022 16:50:19 +0200 Subject: [PATCH 05/20] restore conditional swc dependencies (#31603) --- package-lock.json | 273 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) 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", From 1b27dc93ecc48ec7fae5468117bba39170608422 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Tue, 11 Oct 2022 10:23:57 -0700 Subject: [PATCH 06/20] New translation batch for es (#31608) --- .../workflow-commands-for-github-actions.md | 337 ++++++++++++------ ...enabling-dependabot-for-your-enterprise.md | 2 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 3 +- ...ing-your-github-advanced-security-usage.md | 4 +- .../transferring-a-repository.md | 80 ++--- .../content/rest/enterprise-admin/scim.md | 75 +++- .../enterprise-server/3-3/12.yml | 1 + translations/log/msft-es-resets.csv | 5 +- 8 files changed, 343 insertions(+), 164 deletions(-) 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/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 From 6ef02c49d3ca7b3a618f1b44dabcc672c68ce8dc Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Tue, 11 Oct 2022 10:32:00 -0700 Subject: [PATCH 07/20] New translation batch for ja (#31609) --- .../workflow-commands-for-github-actions.md | 337 ++++++++++++------ ...enabling-dependabot-for-your-enterprise.md | 2 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 3 +- ...ing-your-github-advanced-security-usage.md | 4 +- .../transferring-a-repository.md | 80 ++--- .../content/rest/enterprise-admin/scim.md | 75 +++- .../enterprise-server/3-3/12.yml | 1 + translations/log/msft-ja-resets.csv | 5 +- 8 files changed, 343 insertions(+), 164 deletions(-) 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-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 From 9205ed7b7f356331e87ca0a3619dbb4213ee0f74 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Tue, 11 Oct 2022 10:41:01 -0700 Subject: [PATCH 08/20] New translation batch for pt (#31610) --- translations/log/msft-pt-resets.csv | 4 +- .../workflow-commands-for-github-actions.md | 123 +++++++++++++++++- ...enabling-dependabot-for-your-enterprise.md | 2 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 3 +- ...ing-your-github-advanced-security-usage.md | 4 +- .../transferring-a-repository.md | 80 ++++++------ .../content/rest/enterprise-admin/scim.md | 75 ++++++++++- .../enterprise-server/3-3/12.yml | 1 + 8 files changed, 232 insertions(+), 60 deletions(-) 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 From 9c9b380dddeeaa47926e3492e74c93988a59d930 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Tue, 11 Oct 2022 10:46:57 -0700 Subject: [PATCH 09/20] New translation batch for cn (#31611) --- translations/log/msft-cn-resets.csv | 4 +- .../workflow-commands-for-github-actions.md | 123 +++++++++++++++++- ...enabling-dependabot-for-your-enterprise.md | 2 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 3 +- ...ing-your-github-advanced-security-usage.md | 4 +- .../transferring-a-repository.md | 80 ++++++------ .../content/rest/enterprise-admin/scim.md | 75 ++++++++++- .../enterprise-server/3-3/12.yml | 1 + 8 files changed, 232 insertions(+), 60 deletions(-) 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/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 From 3d462180da7a2e705b4f9976d6efbdbc06dfc94e Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 11 Oct 2022 19:52:03 +0200 Subject: [PATCH 10/20] optimize render of textOnly snippets (#31581) Co-authored-by: Robert Sese <734194+rsese@users.noreply.github.com> --- lib/render-content/renderContent.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) 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 From c8ab357ff96c97fdb4cf1a400214dc3b67a565f4 Mon Sep 17 00:00:00 2001 From: Sam Browning <106113886+sabrowning1@users.noreply.github.com> Date: Tue, 11 Oct 2022 14:20:31 -0400 Subject: [PATCH 11/20] Add instructions for setting location and time zone (#31481) Co-authored-by: github-actions Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../profile/display-local-time-checkbox.png | Bin 0 -> 50220 bytes assets/images/help/profile/location-field.png | Bin 0 -> 22000 bytes .../profile/profile-location-and-time.png | Bin 0 -> 87699 bytes .../help/profile/profile-relative-time.png | Bin 0 -> 89316 bytes .../help/profile/time-zone-dropdown.png | Bin 0 -> 50614 bytes .../personalizing-your-profile.md | 36 +++++++++++++++++- data/features/profile-time-zone.yml | 5 +++ data/reusables/profile/update-profile.md | 3 ++ 8 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 assets/images/help/profile/display-local-time-checkbox.png create mode 100644 assets/images/help/profile/location-field.png create mode 100644 assets/images/help/profile/profile-location-and-time.png create mode 100644 assets/images/help/profile/profile-relative-time.png create mode 100644 assets/images/help/profile/time-zone-dropdown.png create mode 100644 data/features/profile-time-zone.yml create mode 100644 data/reusables/profile/update-profile.md 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 0000000000000000000000000000000000000000..78f05ea9da9a1df871a503eac48da416e9b0ec72 GIT binary patch literal 50220 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

^>I_^S$&W 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/profile/location-field.png b/assets/images/help/profile/location-field.png new file mode 100644 index 0000000000000000000000000000000000000000..86a85d52b4404025ebd10325f80c8add3bba24a7 GIT binary patch literal 22000 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 z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b9714e62225446083cf6346bcb0a5454a3baf648 GIT binary patch literal 87699 zcmZU41yohR(>NW{Asr8Rbc50j0*~$vX_0Oakd*F6h;)l|Hz?gGA>G~GApeX0zBu3i zopaA!?(WRa&dkot&Me_7N-`KPNM69ez+gaRrPN?x;1XeA5KvH%fG;&I@**%W=pxpV zk}42MNsx-OgQc~t1q_UAc#<}&azb`A;5M&t|HDk|8hjYJKkUDRxU6Myt5f5a4RkmVa085kX;`HmEiX;^BT3ckVG zKeJE9k#xo?-{E1xL->M>zYm4pfM7gnm01`O{2A6+=?Eh%h_td<17IauRYGd;8`VO% z@jWXR=tPn+oJe8JHQBTi5dG(9`?(`LbyXzGuuQFRj2Ym>GGMD5KK_vs>E6YjmmuZr z=JK`d#S+l|7e;RXrI8Ml-C%-VkD0yEGex=1@^|>Lf z39rjS=jED_s9{z z`bZaYe1_*VpxVJVp`xcS^$jC@@gi_7ktdB7&n&6^=bZv-TEWJcGp%z6m+^H$6Dmu= zpM6_cnc~>umsWlB;tHQ;s%1YDp;nP}DX|+07bgvWrA5#|+g$~xD(f#n z$vl{d(8qKre~yN<9ced8;7pz5>1X2Z^OaguhcuQsmU0xa1&m#Vi{yrYIDix6vWf;5 zgzwUqi7JKaB$t7;*6FX)qm#}w8mTq6z7^PtP3(YKWh1Vd?#z;@gF=`uK{)H$Cb{hNP z<&jcoQPWKP;U zp`Y%>$L!-QnAejnKAl3ZmMu@ZCRFBB(-|4w#I7k7@q3K1F3m^EKl&ukAO% z)4LCNG*9-R=ELPCFF%--2`&x}#~VSy-*DeWuo@rJ+Fj}uZgy2*S8VZ=nHbd^8xJJ> z9Z=mGC(!*-D`Dy#McBTRd&2u+BXo-4haoe*6^areEq6ivj9wVTpN)_hVDa{~4i-;9 z*<1P<_^Ti!M}%~kq92Hks0Q#JD|@?0>|&Ij$Rac-5)$uF$T`InaG1Mcoy0$fvEv3y zfvRL*B*d6gQAN8KPB4_}a=015ZoY~V%YeEZ7tK1wf- zMul!rqU)EZE7_M%N)nO3Zg+59S@k|0N$>x{+d;e_nfuf(cF*Zw{I>Zs@m3foClA4= z0@Kvb2x;L-rkgr1wIW}4ZTleZcYdgf<-;jjM_<4xUr`Z)-Cl*Bq~4hN2)E-^^v$0z z-@vzGJxOQdM4@0Ju)~GMDfCk-&?RCIqRyj+q7(;VL^5`ht-V?^ zT|+V@Kjo`}-h|C4Q^%vrVuC5v@WbVqz)5kxq)r_;B$P|=lBl}$j zHa846%r=HLiZ;gZF(O{}MB=_#RWDRaR;yS2!br%tm^h}P_zhz!ltg(XXEdk0;J2Ex z>ap7L*RNkcmw0~b{)(b$SyHMwTjH#>889fL$*SqCS^xgaHx0M&J@<1vzGjkXa&L;Qq)nsftA26KWM2tkNlFQ&O2^lw z67gS^zu($8zP5a?@$QxN!q1)Qe4CibsPW-xgVHAX^Ykrl)`a9btvCW>oA%#YWl+7? z9iqj+(Zchc^PTyfqMgM#DLYcT821?W)GLZZ%tH}!R&wnOsSHMemjW_w&90n=Hij|w znMZ1ikImC=qPxWVRTl^!A}`)wvhBA`Qx+aqu>WMAs+i~~d>ZgK!8VVxsa(kZv64w; z|IUHPjBnO4Zd0fu212E!fs)Ep~Qq{A#33nu>d*&O>9;2uihPQZZ5Rf&@XnJ`yBVS_GX!H zMW$OvA2JcA0vFeouf8ghe(FzweXn>HS4EHO1QO-%j`;_rGz@XI-)hd z8dhiU=OI!D>W|gYTs@vYn)SAt0&e>JAn8(hw%v#NB<OkkuQ)3W0H~ygyMyG zV-jLikbLY?or>So+0a?P`3{+8?6fXd51JUlNv2VgVWD)g?B=!N-4@!m8}*QWAB|4R z?_qx4Kh1WUbJ0#KW-lGWbC&M-Os*D`xW?WURv~w z^Lq8p_H_5m;->K4{_60I`+WUQ^H%tx;bi;X;o5Jo+HAAZy~YTM4_Out6S39GyUMCE z7TGj_Dxe^MTwG5aReV3_2ssVe3UM0Y`cva41vGvNITQ>mLy8YUX2Yva-}rq^C``CJ z=Q=gJ);p&|MWZTX+)~e=WFIOR8zf>a>~_`UW}{{&&2oT3n9WISI0RA zyPF?e%y2thG@?4StS$8*ce6)#K;Nc;6yGUoC@aX9D*0sLf3Br2X7-Xgi`qbA3}Ng{ z?A1_vZ@PCi`KL1 zz+~@-M4!i%7u&a0w%WFGf3AJ%jUW>EGO#FBB$b&f%i`9&YidxjR>`S*K>7+=eWrr1q#@1hcW`}g^iWX@ib_DkAO|<6nzDaJHw_0nz zbIX+LY3&8iNzWVh4nyXL>irg}=6=<2yIbkk$+%sz^T=kb|Y{NIyv z2a7&Cl@qJvGQ%+%WK;aj7etpc4`%SJJ*HF<{6%o0y&qX0~=87dDA%orB7J` z-U2rl1Kg$DtX96G6#Uz6<-0=XK3#~{XqSifhoK)m?jKb`y=5NX#70J^2(iERh&d8+ zpFKVcXAaO-GTt<3b7Vc!+rA9m=XJcD>WH9@uBxye*m|%;@+2uJ$fT-}SBUE^-i- zpeUDU=56A|?(X)0v8?g$k9GHR53CRKivbS-u$0CxpNt z1ApNHk7qXAe~pGq%!dE3HUbLJ2P3X734s7_bu(uR3wxJ$4z6);lg5D$sE)F_E-)|z zw9gMLL=Aib;GeeE&~epKR1h$8uwyeZcQCbJ^R#n(#seedDF8I>EL=@Mo_4nOE&`sy z)PF|^0PW|`?9`yYLtJfysdW@pK#~s579bur4mJ*IkryBkNXXgTQb0{g`aj^nU&7Sy zTwNUn*x5ZiJlH(A*&Lj$*g5(6`Pn(R*txh^ff1}OUiPjgo~-sRH2;wN7al1K7c*yT zM^|eHd(bmp6H^B_S7B=E=ZXIN_m55sPwW4g$=>BZ%K{e2{@laP$;QF{-?#x#q35px zD%PGBwz^W*b^y0{nkn|1;(P0@e8+P#zwR{|))Sdj2n@ri+EMq=OwW zr>n^S$m>7A|GV=)fI{rgOaEW2_{ZnJUjasoybxmlZ=s322)}aX2INR)Ev2jhya6qH z{=q%#8Nue!Y7|5`Ber<@fO7x%K=3 zocN!{D_psMUtW=*(*D=j;DrAGNz>%y|Am&$i&q){53nqQ_5X+EAMl~s{QP`%T^%hc zDQR_kJ6pW0ROf1CX;~SB13y8GgCRgn?BQd_4Z5eV$mxf+HCQ2vPo$15JugFt>Ud54 zV*U1G9!ontSzGChNRI=qJH6N1PKi%+Pf|~2Pl!)-Pg754pJ)C{9hbR2(k$F*1Q7zd zISYdGySP`hpE$W1*-vYTPg+(y&U(TaK5EluJDow+AbG$3lFW)>5+wz$ttX(36j`Rk zdt(JhHp-v{D}&FBs$=vT`)L`0<&jp+nEuaP_%ZPlS;^>f7W*mp6XR*OM}Gdq&FINu zyd%JaXND!8*Ecm4r`GdXOVN#Hl$WN9;ggq}2Y$`}dFlZE`7I1@JV^uYgX~)PG5+!) z=IpC>7oY2Ao=E_-*qZI2YOE2xu*Ragdw~Vjjl%2Y(|s_b-f|?(AM#{(5EE+8_I#u| zMeJO|k_KbzrF@@jMwsRS6UCURKk;JUAN!wrsMbhLAfb}W0A;WGnM-+yt7l5*Wa2x8bp(sh?LlbF5b=(e8P z#YySwki>@1>Br>M;35~O}P_?G*{|C{y!NVR-j8##5IYBPqvNuE2IligzyP0h@9R8sg4sdi_(zF1bTLx zyBvC?k}to0W@;$amt9%9BiIGBMtVmF;3V=_o#nZ9K;@)hSiSIe-|E$&#fR|t65xJQf&`u}0+X12);+@@TZ7o#FB3=CEOeCy0;y{B@3PINPHo(kzSXg=r6~cF0X4OzSk$Vd^sR9=%-PZuGbseqTiOxltyy?H_}`ys@R>QK(7rZ=_Mg0@L~V zR)yOnSA^#=K-Y~rh3lp@yjqc6D$e+h3>Ui6|1*Ui0frTK( zl>Wx#n(Kb4a*}{)LLHiLuycaJ+LDnXZA#T}feRL=n~

#x96 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ℑ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 F0sy5Y_s;+T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8ed6b390a3ecf12b5623078533a328c70fcda424 GIT binary patch literal 50614 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 T|8fR{1^g(=tI3r;fxi2H+we-$ literal 0 HcmV?d00001 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/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/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) From 56924c6de7564734eeb74536689b216b7d5d595c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 11 Oct 2022 19:04:18 +0000 Subject: [PATCH 12/20] update search indexes --- lib/search/indexes/github-docs-3.2-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-pt.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt.json.br | 4 ++-- 80 files changed, 160 insertions(+), 160 deletions(-) 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..0ca9c471e8 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:9bdddf78e8ea08332475779dc33756ed184c26b61abb0caf621396118ac57175 +size 785756 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..a9e64b725f 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:71f2a7a91336bea013f7d1c9f22750b35e319a38b06d2d574e5a82226daa6ea6 +size 1628427 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..1fae19d6e7 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:5f6ef379854826cd29fcc72ad037e70847e0ad7b850161d0723d0389bc0d1191 +size 1098922 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..04a4baf40b 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:62e28dcb1fa1f3822623950af5cdcab597a66e0baf3a07c32498da97127c4c18 +size 4478362 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..a6890644ec 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:56b303e08932e848a947f478539044ab1efd8ae398aa6127c160441464c5fa48 +size 745773 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..743fb81708 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:2bb8b77b43b9ebc993fa258de8a4d07a220179fe4965af1c22401fe973bba582 +size 3138389 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..4a702c4b0a 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:0e0e526a5244f3167db05b2af6aab3c8099dfa393f870fef0dba02320ae5ed07 +size 828169 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..fda3e860b8 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:c03737ab8e2db39f551c9cdec6528856f27e041f6a32f4cd6883ab4fa256ec45 +size 4409873 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..43eeeb413b 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:70cddab2921eb7ef16ba99adb5511f1c42acd5fe9ea0059d9612d69a07de3087 +size 732615 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..bd78d68497 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:a867150db55d79850290bda8171af964ce5a8d938133a461c08923b82b89244d +size 3119363 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..dbeadd5262 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:9451b8178ddba671ecc914ae96ce95b15be9145803ab1cc4afceb5483f9a5f8a +size 810347 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..296c26ba25 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:91eae2d08c9716a7a90f0f2696bcf460a4ec3cbcd268f1d07873e64de630dfd7 +size 1683245 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..2faab8b358 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:6471f96169b24161b046c37b86d190fe977b1e29c038885ce54ae7eefe979958 +size 1135030 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..a53f74af9d 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:795e0fe082c53eee01d3fe7084732d0d348204410b4dbe78cbdaff8af6b03754 +size 4582465 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..3d042b7f57 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:4546ae68fcb90978845e3b56f36c1324492f60fa926626c5af180f42ab040134 +size 767715 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..bfc3c707e7 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:22332b2c34894a44753091ed9c281de990a6b83f741b700bf631fdc4481daeb3 +size 3234766 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..b7627cc5c8 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:0479b21cdda6f1c86ef568699cadfc48e05311b674d25d44ba3f6b09762d838d +size 852298 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..0fcc28244d 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:691d5300685bb299cae29c2272583db8b458a840a9a9f830ef4a5dcc05359480 +size 4542384 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..bf3767fc25 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:6ed67ba554a2b89b3afb9eefba941a0592f367e98705e40917421d8dc558a037 +size 754601 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..7f3d58a866 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:4cc2fc4e4ecbc845a56a39719cdce05306368112bc8e5aa1721e3723ff59fd0f +size 3215644 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..5da8fa0578 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:4738d32d0c24aff4d911d3943cee0c5168a1580b1b6c315c0d54481033bd4145 +size 812957 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..fe1588315e 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:bf62c67205b55fc93b9034cdd6b197d9b2b7c95d94418f71c737e95ec9a52266 +size 1697067 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..240bf05f84 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:6ccf251445cfdc2dc61301527c5cd61bdba4390bd1fe0d2d3e51975c43d4dfb1 +size 1146715 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..c8ae53df4c 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:fe43b20e82264fbe12d7910f50b7d8302fc04c09927bb6abb3d7513188dbb7e1 +size 4643684 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..2710d8dac7 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:d1bc6d8a1a5ffc8519ce879fcd3bfc5266068f6e4e87ecf4b9b9421228b11a5e +size 771955 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..e97225ac02 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:ac0b6f43d2135ed9ff70c9da8cb57586be63e442d36c9fac9972d78e29b656c8 +size 3262890 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..04f4cb79af 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:c9a7d2145d9199815a0eb4d307fe2070b6a7b7f9c5915c170797478b0ef7fdc0 +size 854282 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..b66d15360f 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:54b407a934eb2f349dab2d15d402ae58716b7f7f65686e6071de2427b3d07de7 +size 4570747 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..7ca4c99f5d 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:3ec518b860b992c86dac27ec00d7948d59e7f683144b4a3722bd27d322ea65c9 +size 758857 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..4b70c219a5 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:3798a0f94a2c9a6cf88ad267ef7c57889ace791acd97ce72d6c41ac354a569c5 +size 3242053 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..b6bb2492f6 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:24b85b3a21d4b704c2b2b2ad4679dd1ca69fe7b23103d71f6f5d1ff7567264c3 +size 843140 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..76f4fd71b4 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:1c3aaa9b120e0f0113d387b0fe9c8f0207b37727977e43db1ffde3157a1591f6 +size 1762838 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..94d2454868 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:bb768915cf6cc1b501facc7bd044b5f7c183e42021ac5d86a4c24c119bfc2322 +size 1187038 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..cdff64acff 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:4ceecc56bfbd65bb4f70001f78b827e595f7a323c5d048f56ced3a438fc36499 +size 4809944 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..83fb9d7928 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:da3a0a61e41194460331b3ce801ef069f99af70c3d86485bcde73d3f2ede3a51 +size 796864 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..b2bc1b090a 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:193917bd5b826d6191ed2dc6cb7919fc9762f15699a833f0770c80059a6a7cab +size 3377201 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..5242610d23 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:bba0816d97ea14b6fa25db20464a357e3c2bed3a3f2b84d91cbcde63cb9d625f +size 884500 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..5202c9419d 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:4889636213e9280c93e7c5d2d98f8ec822b469f5607118974f669c9133a76cd2 +size 4739431 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..dadaf1c887 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:fea5d434aad648330b2881ce55530257bc5153b3bdff0f5556238678aa1956e3 +size 783827 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..5ef3f44e86 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:ae30c22166d44230226f3589b3ff3c9792216a5de59fd41da35f1f7b8a977b49 +size 3357859 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..2d324cc43a 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:6fda21b76db08cef569c145ae7254bc9dcb78841f2bff1a72ecb324f96d3dd33 +size 866187 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..a17e8d4899 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:5035f335d1421974f3ec531345d716047213dd58b13985eb129422bcdab2fe53 +size 1805230 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..fb228abd2a 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:3212050bb948f95d4b0706de69cf8099f000f9b45934a5c21011747db7f9dc63 +size 1221509 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..9031c288f1 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:78035e24e7d45f62df06f9c81f7c1975ec821a3bb4853552614883a6899bc850 +size 4948323 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..ccfbf7803b 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:7e441bc75e70069e978e8872377fd5ae37a96ed62127486d1a6ae77f7877d39a +size 820831 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..42b0d263a3 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:618253a38dcd8e69c069ddd2f2bf9b1dc66f3d127f14506a7df2c7f19cf64532 +size 3483144 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..69b002613a 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:73404c5a9e1afd0fbb286106ff2579a0cb471cee364257010603edd746477a01 +size 909929 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..b1ad69400c 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:2823e84b7d94c08a1f2506342ada409bed558e0c3c761ad81c5b3337341076f7 +size 4881863 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..64ab019c6d 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:00e3ce928a475e09ef9deac1e997213405c635a0a2c36632aa1c540765ab0a55 +size 806485 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..6a8edb9ebd 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:71e0fd8cf8172ccf08a1e127df08c102c5a6c9c6344f38f7203c6fe37d073328 +size 3458724 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..1f8e40c7dc 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:d8959675eaa545375357a2b2fe36b2aa0ff09ce241d3d8f4b0b770d9d522e1a0 +size 1018023 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 9110fa1149..4932783ae0 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:9016862081d19b4db7b8e302399d8f6375b8bd928750dc12dffac720fff4ee01 +size 1903147 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..4f1afd87e9 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:9180149f913e88f6bb6f1c22bcdba770318cdbb46f109e211964a10935fc6935 +size 1465422 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 1cb0262856..10cc0c649b 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:72e0de4ca99269d528dcfecf56b216cd3c46238f03aede0600648293b0568937 +size 5687616 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..869b23de57 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:ed110c2980e4165fb795985be5244793beef986f5c5677db173c90f528bcdf25 +size 950743 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index d9ba69eda5..288f190e5d 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:7e3d0fe2d30a0bbdb6567d5e960ec033974066133f147dcceff0f8cb88ac3d6e +size 3946901 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..197def06b5 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:64ed3e3ff81c0f9e41c8016c2e151b60646ee33107873d3138f54f9982fcfbe8 +size 1065084 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index dfbceaace1..29be1fbc66 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:beed4664aacdd4d8649ed4df08026f98f90e9c935e238af2b74a6bcd07e88aab +size 5552814 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..39e1162a31 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:9aa3780dd3fcee0df0a0076c0dc463fec851e7294f43224eb6c42c4fa342043d +size 933523 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index ceb8cb4521..7693b4a55c 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:58d1dbc044aaafa1fe45b185105bf84e01c796046ada48dce3408d512d510121 +size 3904439 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..dd763cef34 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:37a3075a5754ebfa14090e06c2b2dd85187e0b8d4e38edc65ae2050111f2eb3e +size 650277 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 80823043da..ed2bb2043c 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:e8a0b1a57e737f28ea6b518ee7259d0b895c465186eb88fe21a4980d61b00234 +size 1375262 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..59cdedf675 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:34fbc9d8a0715ce82e5260d25f2ac39b3989f77b625fe179e55fa8abf1a10a7a +size 943542 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 8c72fed0f6..a8e76d5963 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:f76918e8bb854a958b0b98783329723dfda44d02d05c00cc70c8e5b649cc65e8 +size 3775020 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..81d8cf8d84 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:310d8ff84e445087f087c8ba22f19c6eb8841aa05735e37ecac0a12ebe3c0ec8 +size 626634 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index c5459f5635..c5ad3fb11a 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:f1f5c9f46f93b5b2cbc0e09b20e0ce5d15e4b53249dba2f82adba040b9480955 +size 2579608 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..dfed5d330a 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:6398007b537cc04bbd6d792bfe56b83f4832936324b24a75f698c243ad8ce00c +size 683719 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 2877849400..1bad4e1252 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:564dbe48bbd0188cfd2e478095f9ddf52a6ad3212e30ff1d931d5ac83d2a60df +size 3572735 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..6f2974c25d 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:db097ee8edc0072e2e7fca7c3a1c46e0f8ed9de097c3faa34917f8aaddb896da +size 616061 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index bbc46e7e85..a204f953bd 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:60eeaccbf48ebba2b569d1086c43e13bd182e6479fe9b5f5c5c189d9607f03d7 +size 2566513 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..59aea5396b 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:679026ff36476a5eb270da3fcaf9ee7124f2fa959030f16571811e78fba2a6f4 +size 995954 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 28a2ff4949..55af6ef81e 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:982cd13669e1ef35e66b008f2136247fbcb45fe1d339289be51a66f7969e33a9 +size 2059722 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..549aef299b 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:d63744dc190e8aa79503a9e7480bfa195d6ced580c116cb5bcdedac39fe59ced +size 1412437 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 595bea8102..c766e3bae4 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:8cb754e69cd032e7a2b77eedaf17eeef7de90dc751497140d0c35e890f59efbe +size 5762446 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..43fa9199fb 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:b027a2ec2a6dbd2001f5473a1434fdb0a46cb17f3864bbb01c91de9a701c226a +size 956599 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index beffdb1c16..c2082d65c0 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:02955d0981a6bd887ce102843d386e4d9747bda6276b51d114f00d02dee5b8e0 +size 4123885 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..c048ed187f 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:cf9d4ba3419476bc9393598739e7ee5ba5f054956545ca7d79debebf3efab405 +size 1053231 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 6e353dd8aa..b3f6c96641 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:c9f4b3bef629cee706e09bece6b528b902b3ac9b4ea066f17dc5394fe3b240e1 +size 5698516 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..8f2ae02e8a 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:b4773bc79e3d105715af248d3e1fcf5446ab535d151a8d36b675dc3e238c8071 +size 939041 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index 2e5f9a508d..9f8d95eb40 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:2aa95314f9aac2a2afc45c39da66e503313a7ae3e5d349a18d9c14f0225c973d +size 4072187 From 098fb105b2fdcac8c3614b728f3191aa16c96f99 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 12 Oct 2022 02:26:18 +0200 Subject: [PATCH 13/20] support filters in api/search/legacy (#31616) --- middleware/api/es-search.js | 17 ++++++- middleware/api/search.js | 8 ++- script/search/index-elasticsearch.js | 2 +- tests/content/api-search.js | 49 +++++++++++++++++++ .../github-docs-dotcom-en-records.json | 4 +- .../github-docs-ghae-en-records.json | 2 +- 6 files changed, 75 insertions(+), 7 deletions(-) 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/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"] } } From 7e6836f8cb3b981939bf934e735e7eced8133b05 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 12 Oct 2022 02:48:48 +0000 Subject: [PATCH 14/20] update search indexes --- lib/search/indexes/github-docs-3.2-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-pt.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt.json.br | 4 ++-- 80 files changed, 160 insertions(+), 160 deletions(-) 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 0ca9c471e8..6a6f4cec7b 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:9bdddf78e8ea08332475779dc33756ed184c26b61abb0caf621396118ac57175 -size 785756 +oid sha256:e9096abc19fd610cb2c8c378d5c0d7077f835b860c33a75863bc2c1b4b045e03 +size 786003 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 a9e64b725f..5e57b6e424 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:71f2a7a91336bea013f7d1c9f22750b35e319a38b06d2d574e5a82226daa6ea6 -size 1628427 +oid sha256:0884a8ad90a41d235ec6bd6fe605fff7e289fb547d09d3d8cbf9393cb6edd387 +size 1630652 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 1fae19d6e7..803c747c39 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:5f6ef379854826cd29fcc72ad037e70847e0ad7b850161d0723d0389bc0d1191 -size 1098922 +oid sha256:ab00fe69f597263829db37b9d7b3bae58bc8f61d88c6e5321d5e6958297eed95 +size 1099589 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 04a4baf40b..f402ac4129 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:62e28dcb1fa1f3822623950af5cdcab597a66e0baf3a07c32498da97127c4c18 -size 4478362 +oid sha256:8d78910956c2b829e4f56f827e59fae859fa6d1c15c31503b08bf8652f920935 +size 4478960 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 a6890644ec..9ecf559f10 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:56b303e08932e848a947f478539044ab1efd8ae398aa6127c160441464c5fa48 -size 745773 +oid sha256:da0b309bc6a27026ec18ce162c6a6de30c55105735763c874b61c9938c3708ac +size 746101 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 743fb81708..7897c0a889 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:2bb8b77b43b9ebc993fa258de8a4d07a220179fe4965af1c22401fe973bba582 -size 3138389 +oid sha256:39aa481f3887f2bc987f836ea792c29a2cb2be6e3dbf358e27ef4b0765581d4f +size 3142042 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 4a702c4b0a..3819743a7f 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:0e0e526a5244f3167db05b2af6aab3c8099dfa393f870fef0dba02320ae5ed07 -size 828169 +oid sha256:980fac67fe917f30d363194355b93d312aa0cf954861fe67a9eb6ef9b3c0e251 +size 827933 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 fda3e860b8..1336e110e8 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:c03737ab8e2db39f551c9cdec6528856f27e041f6a32f4cd6883ab4fa256ec45 -size 4409873 +oid sha256:12ef167343058a348ab92ea1313bde32aa78b8e36e14b0afdae68cce5a835dd4 +size 4409805 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 43eeeb413b..4cbd679a78 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:70cddab2921eb7ef16ba99adb5511f1c42acd5fe9ea0059d9612d69a07de3087 -size 732615 +oid sha256:a62ed478cbcf2c5f9075ab3d3df616c8f6f15d0ddbcab132c35f37c760f694d6 +size 732706 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 bd78d68497..0ffba0728e 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:a867150db55d79850290bda8171af964ce5a8d938133a461c08923b82b89244d -size 3119363 +oid sha256:8c202dbca2f807dba0e0b3aca6d5aaa568b94e57bb330ed6efb7b4a81cc880a3 +size 3121273 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 dbeadd5262..8342b71f91 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:9451b8178ddba671ecc914ae96ce95b15be9145803ab1cc4afceb5483f9a5f8a -size 810347 +oid sha256:c77d4522bc469b32042ef2ac0f44f7a982a614a23d622655c368d70d0e7ec943 +size 810633 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 296c26ba25..bdc8c2dd02 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:91eae2d08c9716a7a90f0f2696bcf460a4ec3cbcd268f1d07873e64de630dfd7 -size 1683245 +oid sha256:ca512db457beca47d4a40bd2b11c3a2e6e5aa53d6b85cfbf87b841f39df18954 +size 1685649 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 2faab8b358..bdf7d4ca0f 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:6471f96169b24161b046c37b86d190fe977b1e29c038885ce54ae7eefe979958 -size 1135030 +oid sha256:fc71cf691842f4dc241fe0482d63c1289b3965f7b969f06fbffbb40d2228dea9 +size 1135008 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 a53f74af9d..ebadf808d6 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:795e0fe082c53eee01d3fe7084732d0d348204410b4dbe78cbdaff8af6b03754 -size 4582465 +oid sha256:b84dbbabccd2d09985a4603ecb0b1016225361dd1efc4de7315366a2d975de36 +size 4582285 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 3d042b7f57..06b27eb464 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:4546ae68fcb90978845e3b56f36c1324492f60fa926626c5af180f42ab040134 -size 767715 +oid sha256:80dc0685bedd1efd5143e2c77d94a59debb954452e73f3f7c22fb89ac5431737 +size 767877 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 bfc3c707e7..fcbf48d0fe 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:22332b2c34894a44753091ed9c281de990a6b83f741b700bf631fdc4481daeb3 -size 3234766 +oid sha256:17bae625525e5b516ecc520bf67eeb197fba396d1ce45ceb40d6571fa2ff81d6 +size 3237456 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 b7627cc5c8..2f561e164c 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:0479b21cdda6f1c86ef568699cadfc48e05311b674d25d44ba3f6b09762d838d -size 852298 +oid sha256:855961eb32d07c31f8b2d295ef29668e61470aac07e6f5b3575d3155006b22b7 +size 851931 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 0fcc28244d..7c10c931cd 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:691d5300685bb299cae29c2272583db8b458a840a9a9f830ef4a5dcc05359480 -size 4542384 +oid sha256:5be3c66cd67b98240116da453ea79c63071018a129197727d4838bf0342ac666 +size 4542292 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 bf3767fc25..b6bdcfccfa 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:6ed67ba554a2b89b3afb9eefba941a0592f367e98705e40917421d8dc558a037 -size 754601 +oid sha256:35dc56508a5caffce4ab40daca63c0b7c00bd37ac71694437a706ea97c1cb461 +size 754685 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 7f3d58a866..6a8fa85644 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:4cc2fc4e4ecbc845a56a39719cdce05306368112bc8e5aa1721e3723ff59fd0f -size 3215644 +oid sha256:0ab871585edd6174f62ff09a3c19e54c22f6b5de17b4c0e39e8487d1dccb0326 +size 3216725 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 5da8fa0578..9fa525c211 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:4738d32d0c24aff4d911d3943cee0c5168a1580b1b6c315c0d54481033bd4145 -size 812957 +oid sha256:0fd4cc833041309f5e2d53098c83286fd2af7ffd44beefb60a316f5981098148 +size 813051 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 fe1588315e..6caac38be9 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:bf62c67205b55fc93b9034cdd6b197d9b2b7c95d94418f71c737e95ec9a52266 -size 1697067 +oid sha256:bee13ea3722970fda5807751fc476f28fc2d4a31b578117eab255d6f33e9db2c +size 1699643 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 240bf05f84..976284eeab 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:6ccf251445cfdc2dc61301527c5cd61bdba4390bd1fe0d2d3e51975c43d4dfb1 -size 1146715 +oid sha256:dbbcdcd683bebd293ebe299aedf6f38d83782cefc799163d6633a9e24b4cd3f1 +size 1146781 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 c8ae53df4c..f6d6da073b 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:fe43b20e82264fbe12d7910f50b7d8302fc04c09927bb6abb3d7513188dbb7e1 -size 4643684 +oid sha256:abfd69b8825f97959862e74b69277c1db34a790b860475b82228b3e63ef2913b +size 4643472 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 2710d8dac7..a7e74c998b 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:d1bc6d8a1a5ffc8519ce879fcd3bfc5266068f6e4e87ecf4b9b9421228b11a5e -size 771955 +oid sha256:88fbd9119f40dbff772c574458e68bccb16c53314f3f826124a23b4ab5ab2042 +size 772341 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 e97225ac02..cb379e2db8 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:ac0b6f43d2135ed9ff70c9da8cb57586be63e442d36c9fac9972d78e29b656c8 -size 3262890 +oid sha256:9918c3cd701985bba37cc248f6c779d7741f42d30e25e8bd0564c0ac03f220f2 +size 3265286 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 04f4cb79af..1adc439b62 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:c9a7d2145d9199815a0eb4d307fe2070b6a7b7f9c5915c170797478b0ef7fdc0 -size 854282 +oid sha256:3d487f6da1d11951bec00c357182ca85f08647cf23d4fdcd51da9398d84748ec +size 854038 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 b66d15360f..deee2dbe80 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:54b407a934eb2f349dab2d15d402ae58716b7f7f65686e6071de2427b3d07de7 -size 4570747 +oid sha256:0c58ea624b7895c9464761015c63bbe441bf36639c0e0dc5baa97d5c3e40bdd9 +size 4569229 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 7ca4c99f5d..9f7a7e4523 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:3ec518b860b992c86dac27ec00d7948d59e7f683144b4a3722bd27d322ea65c9 -size 758857 +oid sha256:ec3d7668f1432ac51651e86b6aa80e4dc6f8d3e2e22d2f60471bdcdf39cd5c2d +size 759020 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 4b70c219a5..79ddd7ecea 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:3798a0f94a2c9a6cf88ad267ef7c57889ace791acd97ce72d6c41ac354a569c5 -size 3242053 +oid sha256:e4d8155075eb8900f2906bedba8964d0b829266ea43281da1310a9ebd2ccd940 +size 3243989 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 b6bb2492f6..8594e6216a 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:24b85b3a21d4b704c2b2b2ad4679dd1ca69fe7b23103d71f6f5d1ff7567264c3 -size 843140 +oid sha256:d0eaf44546b00de93b7d55514bd22feac01f10032a5730f4cef0a6bcd01273fc +size 843361 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 76f4fd71b4..c119f13e96 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:1c3aaa9b120e0f0113d387b0fe9c8f0207b37727977e43db1ffde3157a1591f6 -size 1762838 +oid sha256:0a79db220285e4cef8e1d512753035ac5ebea83a17e7e14b3d6c5680bc217135 +size 1764779 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 94d2454868..995c517d8f 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:bb768915cf6cc1b501facc7bd044b5f7c183e42021ac5d86a4c24c119bfc2322 -size 1187038 +oid sha256:ee4699f8d37add278bcc1c847dba45a586fbf395f579f269fa4ae650db2ceda3 +size 1186653 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 cdff64acff..1c2f314735 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:4ceecc56bfbd65bb4f70001f78b827e595f7a323c5d048f56ced3a438fc36499 -size 4809944 +oid sha256:bd73134bddefff82090ca8efb4c290c752ea0ffb7a3b52042e96af76b5b9b57a +size 4809378 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 83fb9d7928..29453bfbbd 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:da3a0a61e41194460331b3ce801ef069f99af70c3d86485bcde73d3f2ede3a51 -size 796864 +oid sha256:05d46b30080f7e90b6fe4c0acfddc2efb19bcec26e59eec1947b1492313772e9 +size 797266 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 b2bc1b090a..8141a83d52 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:193917bd5b826d6191ed2dc6cb7919fc9762f15699a833f0770c80059a6a7cab -size 3377201 +oid sha256:1163a399c98b0fc399c30034a18690f77529ec4e34a7feff063bec888d163cb8 +size 3378998 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 5242610d23..23d9c0af2e 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:bba0816d97ea14b6fa25db20464a357e3c2bed3a3f2b84d91cbcde63cb9d625f -size 884500 +oid sha256:6d82f9243272f643e5a582df2c1e4ef9064735e975bfaceb2354e4f80cd4d5ce +size 884316 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 5202c9419d..be841fa503 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:4889636213e9280c93e7c5d2d98f8ec822b469f5607118974f669c9133a76cd2 -size 4739431 +oid sha256:cb91fc4c28fc13d034553b04d374e6f127743175c028caa57e2368823e09dca6 +size 4738783 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 dadaf1c887..d1bc51e9b4 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:fea5d434aad648330b2881ce55530257bc5153b3bdff0f5556238678aa1956e3 -size 783827 +oid sha256:93bc7f3b60aa5d82a39d2f5e013147aa2dd1aafd11b0c16c7fc115fb90b170ed +size 783979 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 5ef3f44e86..8e5e166b1c 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:ae30c22166d44230226f3589b3ff3c9792216a5de59fd41da35f1f7b8a977b49 -size 3357859 +oid sha256:676e39af3e90266af9ffcc17ca92d781ab5022ac577712a578470495e755fae3 +size 3359612 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 2d324cc43a..10fe5d96f3 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:6fda21b76db08cef569c145ae7254bc9dcb78841f2bff1a72ecb324f96d3dd33 -size 866187 +oid sha256:76a1f842ffbbb68b7e3c6b04fb31a5eb11c7c31fa920d77597f5fec23517887d +size 866621 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 a17e8d4899..58e721d0e2 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:5035f335d1421974f3ec531345d716047213dd58b13985eb129422bcdab2fe53 -size 1805230 +oid sha256:8146cec763166aa18dc6278f5bd979e5a2c347742e35172a950bf2ac97da60cf +size 1808306 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 fb228abd2a..9ea785af76 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:3212050bb948f95d4b0706de69cf8099f000f9b45934a5c21011747db7f9dc63 -size 1221509 +oid sha256:25f4fbc47c229a25ade293b28aa25ec2467bf4656b42942f424972b7b19fb855 +size 1221723 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 9031c288f1..b316675ce8 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:78035e24e7d45f62df06f9c81f7c1975ec821a3bb4853552614883a6899bc850 -size 4948323 +oid sha256:b06e2935958c29f88be24ac4715e05f4427ad6d701f85000cd3c7f8113b3488d +size 4948058 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 ccfbf7803b..7f9cf91b56 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:7e441bc75e70069e978e8872377fd5ae37a96ed62127486d1a6ae77f7877d39a -size 820831 +oid sha256:72a393ee06ec8ce9ba5da70188377022d768e2d29b485972d4ccde006d49d3d8 +size 821195 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 42b0d263a3..7a1585dd20 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:618253a38dcd8e69c069ddd2f2bf9b1dc66f3d127f14506a7df2c7f19cf64532 -size 3483144 +oid sha256:d077f03870a4658c4d6454a4100680ae367b7e871f0afcbd75fddc8a49050e93 +size 3486648 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 69b002613a..79bb1fb09a 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:73404c5a9e1afd0fbb286106ff2579a0cb471cee364257010603edd746477a01 -size 909929 +oid sha256:b32d249bfe88a5fb828eb7c0fff056810a788edc4c5fbf67d69f2f0e657a2d3a +size 909946 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 b1ad69400c..97c01b912d 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:2823e84b7d94c08a1f2506342ada409bed558e0c3c761ad81c5b3337341076f7 -size 4881863 +oid sha256:46779bf213f54260bcc6b65f581b60a2321c574f42eb2e263eea4e0e0ddf7ebc +size 4880263 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 64ab019c6d..6994bdc6d3 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:00e3ce928a475e09ef9deac1e997213405c635a0a2c36632aa1c540765ab0a55 -size 806485 +oid sha256:2d601803cc68f7b6fc7314e540f63f2c0e5e68b975f327a669d4ff6f1155946f +size 806875 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 6a8edb9ebd..29824886db 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:71e0fd8cf8172ccf08a1e127df08c102c5a6c9c6344f38f7203c6fe37d073328 -size 3458724 +oid sha256:05216f28f04f5cb7f446c6da99a767e808bb735d0b7d4521c78187fb4f0e5d7e +size 3460958 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 1f8e40c7dc..4b79d43c62 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:d8959675eaa545375357a2b2fe36b2aa0ff09ce241d3d8f4b0b770d9d522e1a0 -size 1018023 +oid sha256:f839d5e5b6fce941753dc63a19b16d3a8f265430a9d530d778c4190aa142f419 +size 1018074 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 4932783ae0..7c0ca73f23 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:9016862081d19b4db7b8e302399d8f6375b8bd928750dc12dffac720fff4ee01 -size 1903147 +oid sha256:41d328a417fda9f7877a585b29beab4cac56fa30d8553b5c494db1fe4719a08f +size 1904584 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 4f1afd87e9..0bea4ad6a9 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:9180149f913e88f6bb6f1c22bcdba770318cdbb46f109e211964a10935fc6935 -size 1465422 +oid sha256:b537aa943987f42f4d131b6d538886d55cc125849dd8569a39f26c7ec8b301f6 +size 1472639 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 10cc0c649b..1bf77d641b 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:72e0de4ca99269d528dcfecf56b216cd3c46238f03aede0600648293b0568937 -size 5687616 +oid sha256:8f82725dfb8572f505443d519cac14d58b895fa0434f8726db050fba51dbfb23 +size 5688044 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 869b23de57..928202a7b9 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:ed110c2980e4165fb795985be5244793beef986f5c5677db173c90f528bcdf25 -size 950743 +oid sha256:17c4fc4d3fdb5ad17e2f91ba1f55a84c3d9f83fe433b820f96c26dd13859fae8 +size 950843 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 288f190e5d..4fdae8559e 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:7e3d0fe2d30a0bbdb6567d5e960ec033974066133f147dcceff0f8cb88ac3d6e -size 3946901 +oid sha256:d5061eb80fd017f756d513c9dde746e8a577c21605b8a77afc362a582807eed8 +size 3948763 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 197def06b5..39a51c831e 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:64ed3e3ff81c0f9e41c8016c2e151b60646ee33107873d3138f54f9982fcfbe8 -size 1065084 +oid sha256:6c8d2cad60aa4f927581e5bfaffb8b9e6e028fda7f4f433a8a7a03b3228b97d9 +size 1064657 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 29be1fbc66..4e7735c405 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:beed4664aacdd4d8649ed4df08026f98f90e9c935e238af2b74a6bcd07e88aab -size 5552814 +oid sha256:54c20f492ba0ad4022dc0db8001a281bca2367da623e04ba2f1d51fccf6dd86d +size 5552465 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 39e1162a31..0ee0fb246c 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:9aa3780dd3fcee0df0a0076c0dc463fec851e7294f43224eb6c42c4fa342043d -size 933523 +oid sha256:e9f50e41d31732796971ea6af77df513db95d155a508a2b44f2ae793a9d5c0fb +size 933822 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 7693b4a55c..bc7e236fd6 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:58d1dbc044aaafa1fe45b185105bf84e01c796046ada48dce3408d512d510121 -size 3904439 +oid sha256:6f4f193b3684085c93704c8b49ce21ef653d5a6aa9ed4cd76cc486661666999d +size 3906054 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 dd763cef34..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:37a3075a5754ebfa14090e06c2b2dd85187e0b8d4e38edc65ae2050111f2eb3e -size 650277 +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 ed2bb2043c..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:e8a0b1a57e737f28ea6b518ee7259d0b895c465186eb88fe21a4980d61b00234 -size 1375262 +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 59cdedf675..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:34fbc9d8a0715ce82e5260d25f2ac39b3989f77b625fe179e55fa8abf1a10a7a -size 943542 +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 a8e76d5963..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:f76918e8bb854a958b0b98783329723dfda44d02d05c00cc70c8e5b649cc65e8 -size 3775020 +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 81d8cf8d84..0d850d4ac9 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:310d8ff84e445087f087c8ba22f19c6eb8841aa05735e37ecac0a12ebe3c0ec8 -size 626634 +oid sha256:adec1398cfe6f2c9db5980c86daddc687e828d930ce1fcf7ca77bfe99af42ab5 +size 627009 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index c5ad3fb11a..b88ad82f4f 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:f1f5c9f46f93b5b2cbc0e09b20e0ce5d15e4b53249dba2f82adba040b9480955 -size 2579608 +oid sha256:ba47c490c531a629cd32e2caf02e9cb74ecbabdab1f678f69f7430b6f93ec334 +size 2582598 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 dfed5d330a..2c4d39498b 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:6398007b537cc04bbd6d792bfe56b83f4832936324b24a75f698c243ad8ce00c -size 683719 +oid sha256:47ae3563dbe49b4e873f525b6467e9a9a794b63062ff4c7aaf933809c585c08e +size 683444 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 1bad4e1252..c6fce89fb5 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:564dbe48bbd0188cfd2e478095f9ddf52a6ad3212e30ff1d931d5ac83d2a60df -size 3572735 +oid sha256:b17f2a1b316c325cd523dfb5968f7fbafd97b7e7a7ba34d2cf020db61b30617b +size 3572946 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 6f2974c25d..94ee32a0c7 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:db097ee8edc0072e2e7fca7c3a1c46e0f8ed9de097c3faa34917f8aaddb896da -size 616061 +oid sha256:214a20003164627971e2bcd5fa2b751423a5b6b9bb8129f31033486aff294cb9 +size 616374 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index a204f953bd..01e691f928 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:60eeaccbf48ebba2b569d1086c43e13bd182e6479fe9b5f5c5c189d9607f03d7 -size 2566513 +oid sha256:64e7ed8716f738495bbd449d3266b5cf5f588bc0c613fc8cc6c8527cfea6ef6b +size 2568607 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 59aea5396b..040247085e 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:679026ff36476a5eb270da3fcaf9ee7124f2fa959030f16571811e78fba2a6f4 -size 995954 +oid sha256:0f82e5fe2874ff2d8a81f067f61f74d875e7d792e89897c809425e768216c884 +size 996095 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 55af6ef81e..e039fada6f 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:982cd13669e1ef35e66b008f2136247fbcb45fe1d339289be51a66f7969e33a9 -size 2059722 +oid sha256:741ed9fd729937565a6badff74390d85b5905311c780d3e8575e9fea7597666a +size 2062349 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 549aef299b..128aad18e2 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:d63744dc190e8aa79503a9e7480bfa195d6ced580c116cb5bcdedac39fe59ced -size 1412437 +oid sha256:fefe43d9499ea1b90e2a2c656c583945e06dcec6dd86a0f71ce0209250ca0d28 +size 1412383 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index c766e3bae4..b5cd0b3f66 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:8cb754e69cd032e7a2b77eedaf17eeef7de90dc751497140d0c35e890f59efbe -size 5762446 +oid sha256:ba18bb85643926d07d3eadac1a90ee4260093452d85798dcfa87b6ae5b27b176 +size 5763244 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 43fa9199fb..1c07468b7b 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:b027a2ec2a6dbd2001f5473a1434fdb0a46cb17f3864bbb01c91de9a701c226a -size 956599 +oid sha256:c84f1673100cc0135183a4d767150fe8236355d8e486fdba921f89cbbb0d6a80 +size 956729 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index c2082d65c0..2f4fd11d56 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:02955d0981a6bd887ce102843d386e4d9747bda6276b51d114f00d02dee5b8e0 -size 4123885 +oid sha256:7fae55d3fbdab1cf46e8b08d69bed3517fb095d952725feed9d4a8645140220e +size 4127575 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 c048ed187f..60c655628f 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:cf9d4ba3419476bc9393598739e7ee5ba5f054956545ca7d79debebf3efab405 -size 1053231 +oid sha256:a45c0cee3c5f7d1212bc3bcadb85d76328a2f72401508eb03cecae5729f8f81b +size 1052870 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index b3f6c96641..8d3966dc85 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:c9f4b3bef629cee706e09bece6b528b902b3ac9b4ea066f17dc5394fe3b240e1 -size 5698516 +oid sha256:7504e0651b4e74ffd8db05a2387356e444e2780094f0646154021355596c7497 +size 5696464 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 8f2ae02e8a..1815cb0f69 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:b4773bc79e3d105715af248d3e1fcf5446ab535d151a8d36b675dc3e238c8071 -size 939041 +oid sha256:57bbfe4842b3c0e8ccc97da184b74bd277627009849674f15f15911243fb25b4 +size 939091 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index 9f8d95eb40..861e08a0e7 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:2aa95314f9aac2a2afc45c39da66e503313a7ae3e5d349a18d9c14f0225c973d -size 4072187 +oid sha256:e482ef6e69439c4cca0f28126218c84f208ee6fa95619a8e98c154d78eae1913 +size 4074491 From 3dec3c7294361e4db44b0f70cbfac79ef05cc941 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 12 Oct 2022 10:33:28 +0000 Subject: [PATCH 15/20] update search indexes --- lib/search/indexes/github-docs-3.2-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.2-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.3-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.4-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.5-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.6-pt.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-cn.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-en.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-es.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-ja.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-dotcom-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghae-pt.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-cn.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-en.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-es.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-ja.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-ghec-pt.json.br | 4 ++-- 76 files changed, 152 insertions(+), 152 deletions(-) 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 6a6f4cec7b..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:e9096abc19fd610cb2c8c378d5c0d7077f835b860c33a75863bc2c1b4b045e03 -size 786003 +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 5e57b6e424..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:0884a8ad90a41d235ec6bd6fe605fff7e289fb547d09d3d8cbf9393cb6edd387 -size 1630652 +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 803c747c39..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:ab00fe69f597263829db37b9d7b3bae58bc8f61d88c6e5321d5e6958297eed95 -size 1099589 +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 f402ac4129..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:8d78910956c2b829e4f56f827e59fae859fa6d1c15c31503b08bf8652f920935 -size 4478960 +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 9ecf559f10..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:da0b309bc6a27026ec18ce162c6a6de30c55105735763c874b61c9938c3708ac -size 746101 +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 7897c0a889..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:39aa481f3887f2bc987f836ea792c29a2cb2be6e3dbf358e27ef4b0765581d4f -size 3142042 +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 3819743a7f..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:980fac67fe917f30d363194355b93d312aa0cf954861fe67a9eb6ef9b3c0e251 -size 827933 +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 1336e110e8..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:12ef167343058a348ab92ea1313bde32aa78b8e36e14b0afdae68cce5a835dd4 -size 4409805 +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 4cbd679a78..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:a62ed478cbcf2c5f9075ab3d3df616c8f6f15d0ddbcab132c35f37c760f694d6 -size 732706 +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 0ffba0728e..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:8c202dbca2f807dba0e0b3aca6d5aaa568b94e57bb330ed6efb7b4a81cc880a3 -size 3121273 +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 8342b71f91..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:c77d4522bc469b32042ef2ac0f44f7a982a614a23d622655c368d70d0e7ec943 -size 810633 +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 bdc8c2dd02..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:ca512db457beca47d4a40bd2b11c3a2e6e5aa53d6b85cfbf87b841f39df18954 -size 1685649 +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 bdf7d4ca0f..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:fc71cf691842f4dc241fe0482d63c1289b3965f7b969f06fbffbb40d2228dea9 -size 1135008 +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 ebadf808d6..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:b84dbbabccd2d09985a4603ecb0b1016225361dd1efc4de7315366a2d975de36 -size 4582285 +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 06b27eb464..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:80dc0685bedd1efd5143e2c77d94a59debb954452e73f3f7c22fb89ac5431737 -size 767877 +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 fcbf48d0fe..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:17bae625525e5b516ecc520bf67eeb197fba396d1ce45ceb40d6571fa2ff81d6 -size 3237456 +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 2f561e164c..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:855961eb32d07c31f8b2d295ef29668e61470aac07e6f5b3575d3155006b22b7 -size 851931 +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 7c10c931cd..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:5be3c66cd67b98240116da453ea79c63071018a129197727d4838bf0342ac666 -size 4542292 +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 b6bdcfccfa..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:35dc56508a5caffce4ab40daca63c0b7c00bd37ac71694437a706ea97c1cb461 -size 754685 +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 6a8fa85644..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:0ab871585edd6174f62ff09a3c19e54c22f6b5de17b4c0e39e8487d1dccb0326 -size 3216725 +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 9fa525c211..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:0fd4cc833041309f5e2d53098c83286fd2af7ffd44beefb60a316f5981098148 -size 813051 +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 6caac38be9..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:bee13ea3722970fda5807751fc476f28fc2d4a31b578117eab255d6f33e9db2c -size 1699643 +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 976284eeab..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:dbbcdcd683bebd293ebe299aedf6f38d83782cefc799163d6633a9e24b4cd3f1 -size 1146781 +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 f6d6da073b..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:abfd69b8825f97959862e74b69277c1db34a790b860475b82228b3e63ef2913b -size 4643472 +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 a7e74c998b..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:88fbd9119f40dbff772c574458e68bccb16c53314f3f826124a23b4ab5ab2042 -size 772341 +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 cb379e2db8..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:9918c3cd701985bba37cc248f6c779d7741f42d30e25e8bd0564c0ac03f220f2 -size 3265286 +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 1adc439b62..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:3d487f6da1d11951bec00c357182ca85f08647cf23d4fdcd51da9398d84748ec -size 854038 +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 deee2dbe80..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:0c58ea624b7895c9464761015c63bbe441bf36639c0e0dc5baa97d5c3e40bdd9 -size 4569229 +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 9f7a7e4523..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:ec3d7668f1432ac51651e86b6aa80e4dc6f8d3e2e22d2f60471bdcdf39cd5c2d -size 759020 +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 79ddd7ecea..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:e4d8155075eb8900f2906bedba8964d0b829266ea43281da1310a9ebd2ccd940 -size 3243989 +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 8594e6216a..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:d0eaf44546b00de93b7d55514bd22feac01f10032a5730f4cef0a6bcd01273fc -size 843361 +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 c119f13e96..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:0a79db220285e4cef8e1d512753035ac5ebea83a17e7e14b3d6c5680bc217135 -size 1764779 +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 995c517d8f..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:ee4699f8d37add278bcc1c847dba45a586fbf395f579f269fa4ae650db2ceda3 -size 1186653 +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 1c2f314735..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:bd73134bddefff82090ca8efb4c290c752ea0ffb7a3b52042e96af76b5b9b57a -size 4809378 +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 29453bfbbd..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:05d46b30080f7e90b6fe4c0acfddc2efb19bcec26e59eec1947b1492313772e9 -size 797266 +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 8141a83d52..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:1163a399c98b0fc399c30034a18690f77529ec4e34a7feff063bec888d163cb8 -size 3378998 +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 23d9c0af2e..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:6d82f9243272f643e5a582df2c1e4ef9064735e975bfaceb2354e4f80cd4d5ce -size 884316 +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 be841fa503..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:cb91fc4c28fc13d034553b04d374e6f127743175c028caa57e2368823e09dca6 -size 4738783 +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 d1bc51e9b4..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:93bc7f3b60aa5d82a39d2f5e013147aa2dd1aafd11b0c16c7fc115fb90b170ed -size 783979 +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 8e5e166b1c..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:676e39af3e90266af9ffcc17ca92d781ab5022ac577712a578470495e755fae3 -size 3359612 +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 10fe5d96f3..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:76a1f842ffbbb68b7e3c6b04fb31a5eb11c7c31fa920d77597f5fec23517887d -size 866621 +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 58e721d0e2..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:8146cec763166aa18dc6278f5bd979e5a2c347742e35172a950bf2ac97da60cf -size 1808306 +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 9ea785af76..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:25f4fbc47c229a25ade293b28aa25ec2467bf4656b42942f424972b7b19fb855 -size 1221723 +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 b316675ce8..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:b06e2935958c29f88be24ac4715e05f4427ad6d701f85000cd3c7f8113b3488d -size 4948058 +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 7f9cf91b56..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:72a393ee06ec8ce9ba5da70188377022d768e2d29b485972d4ccde006d49d3d8 -size 821195 +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 7a1585dd20..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:d077f03870a4658c4d6454a4100680ae367b7e871f0afcbd75fddc8a49050e93 -size 3486648 +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 79bb1fb09a..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:b32d249bfe88a5fb828eb7c0fff056810a788edc4c5fbf67d69f2f0e657a2d3a -size 909946 +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 97c01b912d..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:46779bf213f54260bcc6b65f581b60a2321c574f42eb2e263eea4e0e0ddf7ebc -size 4880263 +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 6994bdc6d3..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:2d601803cc68f7b6fc7314e540f63f2c0e5e68b975f327a669d4ff6f1155946f -size 806875 +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 29824886db..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:05216f28f04f5cb7f446c6da99a767e808bb735d0b7d4521c78187fb4f0e5d7e -size 3460958 +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 4b79d43c62..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:f839d5e5b6fce941753dc63a19b16d3a8f265430a9d530d778c4190aa142f419 -size 1018074 +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 7c0ca73f23..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:41d328a417fda9f7877a585b29beab4cac56fa30d8553b5c494db1fe4719a08f -size 1904584 +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 0bea4ad6a9..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:b537aa943987f42f4d131b6d538886d55cc125849dd8569a39f26c7ec8b301f6 -size 1472639 +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 1bf77d641b..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:8f82725dfb8572f505443d519cac14d58b895fa0434f8726db050fba51dbfb23 -size 5688044 +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 928202a7b9..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:17c4fc4d3fdb5ad17e2f91ba1f55a84c3d9f83fe433b820f96c26dd13859fae8 -size 950843 +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 4fdae8559e..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:d5061eb80fd017f756d513c9dde746e8a577c21605b8a77afc362a582807eed8 -size 3948763 +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 39a51c831e..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:6c8d2cad60aa4f927581e5bfaffb8b9e6e028fda7f4f433a8a7a03b3228b97d9 -size 1064657 +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 4e7735c405..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:54c20f492ba0ad4022dc0db8001a281bca2367da623e04ba2f1d51fccf6dd86d -size 5552465 +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 0ee0fb246c..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:e9f50e41d31732796971ea6af77df513db95d155a508a2b44f2ae793a9d5c0fb -size 933822 +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 bc7e236fd6..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:6f4f193b3684085c93704c8b49ce21ef653d5a6aa9ed4cd76cc486661666999d -size 3906054 +oid sha256:2e14caac7c2e279a3cb383346ae2476fea4741bc29b96cc971f8f15c769a8843 +size 3906420 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 0d850d4ac9..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:adec1398cfe6f2c9db5980c86daddc687e828d930ce1fcf7ca77bfe99af42ab5 -size 627009 +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 b88ad82f4f..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:ba47c490c531a629cd32e2caf02e9cb74ecbabdab1f678f69f7430b6f93ec334 -size 2582598 +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 2c4d39498b..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:47ae3563dbe49b4e873f525b6467e9a9a794b63062ff4c7aaf933809c585c08e -size 683444 +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 c6fce89fb5..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:b17f2a1b316c325cd523dfb5968f7fbafd97b7e7a7ba34d2cf020db61b30617b -size 3572946 +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 94ee32a0c7..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:214a20003164627971e2bcd5fa2b751423a5b6b9bb8129f31033486aff294cb9 -size 616374 +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 01e691f928..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:64e7ed8716f738495bbd449d3266b5cf5f588bc0c613fc8cc6c8527cfea6ef6b -size 2568607 +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 040247085e..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:0f82e5fe2874ff2d8a81f067f61f74d875e7d792e89897c809425e768216c884 -size 996095 +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 e039fada6f..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:741ed9fd729937565a6badff74390d85b5905311c780d3e8575e9fea7597666a -size 2062349 +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 128aad18e2..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:fefe43d9499ea1b90e2a2c656c583945e06dcec6dd86a0f71ce0209250ca0d28 -size 1412383 +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 b5cd0b3f66..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:ba18bb85643926d07d3eadac1a90ee4260093452d85798dcfa87b6ae5b27b176 -size 5763244 +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 1c07468b7b..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:c84f1673100cc0135183a4d767150fe8236355d8e486fdba921f89cbbb0d6a80 -size 956729 +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 2f4fd11d56..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:7fae55d3fbdab1cf46e8b08d69bed3517fb095d952725feed9d4a8645140220e -size 4127575 +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 60c655628f..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:a45c0cee3c5f7d1212bc3bcadb85d76328a2f72401508eb03cecae5729f8f81b -size 1052870 +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 8d3966dc85..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:7504e0651b4e74ffd8db05a2387356e444e2780094f0646154021355596c7497 -size 5696464 +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 1815cb0f69..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:57bbfe4842b3c0e8ccc97da184b74bd277627009849674f15f15911243fb25b4 -size 939091 +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 861e08a0e7..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:e482ef6e69439c4cca0f28126218c84f208ee6fa95619a8e98c154d78eae1913 -size 4074491 +oid sha256:20d5f38b5ccef0973b8bbb4225174306cf7e12de0a93ef15b6411493bf562e63 +size 4073839 From 77d2ca595595e61168e3d5cad433cc02332161ce Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Wed, 12 Oct 2022 13:17:23 +0200 Subject: [PATCH 16/20] include URL in middleware error handling to FailBot (#31617) --- middleware/handle-errors.js | 1 + 1 file changed, 1 insertion(+) 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, }) } } From db77694065fba4d7b5914fc2e5996117ab7d0bde Mon Sep 17 00:00:00 2001 From: Sho Mizutani Date: Wed, 12 Oct 2022 20:42:10 +0900 Subject: [PATCH 17/20] Update Setting up a staging instance (#28292) Co-authored-by: Matt Pollard Co-authored-by: Matt Pollard Co-authored-by: Laura Coursen --- ...rise-server-with-github-actions-enabled.md | 57 ++++----- .../setting-up-a-staging-instance.md | 119 +++++++++++++++++- .../actions/apply-configuration-and-enable.md | 5 + ...gure-storage-provider-platform-commands.md | 10 ++ .../actions/configure-storage-provider.md | 20 +++ .../ssh-into-staging-instance.md | 5 + 6 files changed, 177 insertions(+), 39 deletions(-) create mode 100644 data/reusables/actions/apply-configuration-and-enable.md create mode 100644 data/reusables/actions/configure-storage-provider-platform-commands.md create mode 100644 data/reusables/actions/configure-storage-provider.md create mode 100644 data/reusables/enterprise_installation/ssh-into-staging-instance.md 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/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 + ``` From d5cf8700abbaaf72c798b5b99f65865a2d7f5c4c Mon Sep 17 00:00:00 2001 From: Evan Bonsignori Date: Wed, 12 Oct 2022 04:43:31 -0700 Subject: [PATCH 18/20] Persist tab state in query params for linking (#31499) --- components/article/PlatformPicker.tsx | 58 +++++++++++++------- components/article/ToolPicker.tsx | 78 ++++++++++++++++++--------- components/lib/events.ts | 2 +- components/rest/RestCodeSamples.tsx | 2 +- 4 files changed, 95 insertions(+), 45 deletions(-) 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:', }) } From 317c72df4ea1ab1bad699ac5af50f9b3875aa067 Mon Sep 17 00:00:00 2001 From: Sam Browning <106113886+sabrowning1@users.noreply.github.com> Date: Wed, 12 Oct 2022 08:05:52 -0400 Subject: [PATCH 19/20] Add note about GHAS enterprise policy setting error (#31623) --- ...curity-and-analysis-settings-for-your-organization.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 %} From 6c51c13392b2edb3bc5954a7e30feca4aa9ab3be Mon Sep 17 00:00:00 2001 From: Sarah Schneider Date: Wed, 12 Oct 2022 08:58:46 -0400 Subject: [PATCH 20/20] Support deep links on homepage (#31172) Co-authored-by: Peter Bengtsson --- content/index.md | 4 ++++ lib/all-products.js | 35 +++++++++++++++++++++++++++-------- middleware/context.js | 4 ++-- tests/rendering/server.js | 22 +++++++++++++--------- 4 files changed, 46 insertions(+), 19 deletions(-) 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/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/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/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 () => {

B6aRFGi!b7`tO>LWJDB{ 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